kafkaConfig
生产者配置
NAME
DESCRIPTION
TYPE
DEFAULT
VALID VALUES
IMPORTANCE
bootstrap.servers
host/port列表,用于初始化建立和Kafka集群的连接。列表格式为host1:port1,host2:port2,….,无需添加所有的集群地址,kafka会根据提供的地址发现其他的地址(你可以多提供几个,以防提供的服务器关闭)
list
high
key.serializer
实现 org.apache.kafka.common.serialization.Serializer 接口的 key 的 Serializer 类。
class
high
value.serializer
实现 org.apache.kafka.common.serialization.Serializer 接口的value 的 Serializer 类。
class
high
acks
生产者需要leader确认请求完成之前接收的应答数。此配置控制了发送消息的耐用性,支持以下配置:
string
1
[ ...
微服务面试题
常见面试题1.微服务篇1.1.SpringCloud常见组件有哪些?问题说明:这个题目主要考察对SpringCloud的组件基本了解
难易程度:简单
参考话术:
SpringCloud包含的组件很多,有很多功能是重复的。其中最常用组件包括:
注册中心组件:Eureka、Nacos等
负载均衡组件:Ribbon
远程调用组件:OpenFeign
网关组件:Zuul、Gateway
服务保护组件:Hystrix、Sentinel
服务配置管理组件:SpringCloudConfig、Nacos
1.2.Nacos的服务注册表结构是怎样的?问题说明:考察对Nacos数据分级结构的了解,以及Nacos源码的掌握情况
难易程度:一般
参考话术:
Nacos采用了数据的分级存储模型,最外层是Namespace,用来隔离环境。然后是Group,用来对服务分组。接下来就是服务(Service)了,一个服务包含多个实例,但是可能处于不同机房,因此Service下有多个集群(Cluster),Cluster下是不同的实例(Instance)。
对应到Java代码中,Nacos采用了一个多层 ...
es集群
部署es集群我们会在单机上利用docker容器运行多个es实例来模拟es集群。不过生产环境推荐大家每一台服务节点仅部署一个es的实例。
部署es集群可以直接使用docker-compose来完成,但这要求你的Linux虚拟机至少有1G的内存空间
1.1.创建es集群首先编写一个docker-compose文件,内容如下:
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758version: '2.2'services: es01: image: elasticsearch:7.12.1 container_name: es01 environment: - node.name=es01 - cluster.name=es-docker-cluster - discovery.seed_hosts=es02,es03 - cluster.initia ...
Redis集群
Redis集群本章是基于CentOS7下的Redis集群教程,包括:
单机安装Redis
Redis主从
Redis分片集群
1.单机安装Redis首先需要安装Redis所需要的依赖:
1yum install -y gcc tcl
随后去redis的官网下载redis的安装包,将其放入虚拟机的任意目录
例如,我放到了/tmp目录:
解压缩:
1tar -xvf redis-6.2.4.tar.gz
解压后:
进入redis目录:
1cd redis-6.2.4
运行编译命令:
1make && make install
如果没有出错,应该就安装成功了。
然后修改redis.conf文件中的一些配置:
1234# 绑定地址,默认是127.0.0.1,会导致只能在本地访问。修改为0.0.0.0则可以在任意IP访问bind 0.0.0.0# 数据库数量,设置为1databases 1
启动Redis:
1redis-server redis.conf
停止redis服务:
1redis-cli shutdown
2. ...
设计模式
1、设计模式的概念1.1 产生背景“设计模式“最初并不是出现在软件设计中,而是在建筑领域的设计中
1977年美国著名建筑大师、加利福尼亚大学伯克利分校环境结构中心主任克里斯托夫·亚历山大(Christopher Alexander)在他的著作《建筑模式语言:城镇、建筑、构造》中描述了一些常见的建筑设计问题,并提出了 253 种关于对城镇、邻里、住宅、花园和房间等进行设计的基本模式。
1990年软件工程界开始研讨设计模式的话题,后来召开了多次关于设计模式的研讨会。直到1995 年,艾瑞克·伽马(ErichGamma)、理査德·海尔姆(Richard Helm)、拉尔夫·约翰森(Ralph Johnson)、约翰·威利斯迪斯(John Vlissides)等 4 位作者合作出版了《设计模式:可复用面向对象软件的基础》一书,在此书中收录了 23 个设计模式,这是设计模式领域里程碑的事件,导致了软件设计模式的突破。这 4 位作者在软件开发领域里也以他们的“四人组”(Gang of Four,GoF)著称。
1.2 概念软件设计模式(Design pattern),又称设计模式,是一套被反复 ...
RESTful风格开发防SQL注入
在Spring Boot开发的RESTful风格后端项目中,SQL注入仍然是一个潜在的安全风险,尤其是当未正确处理用户输入时。以下是有关SQL注入如何发生及其防范措施的详细说明。
SQL注入概述SQL注入攻击是指攻击者通过在应用程序中输入恶意的SQL代码来操控数据库查询,从而获取、修改、删除数据,或执行其他恶意操作。通常发生在应用程序直接使用用户输入来构建SQL查询时。
SQL注入示例假设我们有一个简单的RESTful API来获取用户信息,URL为/users?id=1,处理这个请求的代码如下:
12345678910111213@RestControllerpublic class UserController { @Autowired private JdbcTemplate jdbcTemplate; @GetMapping("/users") public List<Map<String, Object>> getUser(@RequestParam String id) { ...
Spring5
1. Spring1.1 简介
Spring:春天
2002,首次推出了Spring的出行:interface21框架!
Spring框架即以interface21框架为基础,经过重新设计,并不断丰富其内涵,雨2004
年3月24日,发布了1.0正式版
Rod Johnson,SpringFarmework创始人
spring理念:使现有的技术更加容易使用,本身是一个大杂烩,整合了现有的技术框架!
SSH:Struct2 + Spring + Hibernate (Spring没出来以前)
SSM:SpringMvc + Spring + Mybatis
官网: https://spring.io/projects/spring-framework#overview
GitHub:https://github.com/spring-projects/spring-framework
123456<!-- https://mvnrepository.com/artifact/org.springframework/spring-webmvc --><d ...
Vue3
认识Vue31. Vue2 选项式 API vs Vue3 组合式API1234567891011121314<script>export default { data(){ return { count:0 } }, methods:{ addCount(){ this.count++ } }}</script>
12345<script setup>import { ref } from 'vue'const count = ref(0)const addCount = ()=> count.value++</script>
特点:
代码量变少
分散式维护变成集中式维护
2. Vue3的优势
使用create-vue搭建Vue3项目1. 认识create-vue
create-vue是Vue官方新的脚手架工具,底层切换到了 vite ...
SpringCloud
认识微服务服务架构演变单体架构单体架构:将业务中的所有功能集合在一个项目中开发,打包成一个包部署
优点:
架构简单
部署成本低
缺点:
耦合度高
分布式架构分布式架构:根据业务功能对系统进行拆分,每个业务模块作为独立项目开发,称为一个服务
优点:
降低服务耦合度
有利于服务升级扩展
缺点:
服务调用关系错综复杂
分布式架构虽然降低了服务耦合,但是服务拆分时也有很多问题需要思考:
服务拆分的粒度如何界定?
服务之间如何调用?
服务的调用关系如何管理?
服务之间的健康状态如何感知?
微服务微服务:是一种经过良好架构设计的分布式架构方案,微服务架构特征:
单一职责:微服务拆分粒度更小,每一个服务都对应唯一的业务能力,做到单一职责
自治:团队独立、技术独立、数据独立,独立部署和交付
面向服务:服务提供统一标准的接口,与语言和技术无关
隔离性强:服务调用做好隔离、容错、降级,避免出现级联问题
微服务的上述特性其实是在给分布式架构制定一个标准,进一步降低服务之间的耦合度,提供服务的独立性和灵活性。做到高内聚,低耦合。
因此,可以认为微服务是一种经过良好架构设计的分布式 ...