- 博客(9)
- 收藏
- 关注
原创 Day7 rabbitmq基础(二)
整合springboot引入依赖 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-amqp</artifactId> <version>2.2.10.RELEASE</version> &
2022-02-27 22:18:13
1329
原创 Day5&6 rabbitmq基础
Rabbitmq消息队列解决的问题异步A系统处理用户A的请求并写到A库中需要3ms,但是在A调用B,C,D的接口时用了900多ms,对于这样的情况,A可以将响应直接返回给用户,把消息发给rabbitmq上,增强了用户的体验解耦A系统需要发送数据给B,C,D系统,以调用接口的方式,但是如果此时D系统不需要这些数据了呢?又有一个新的E系统需要这些数据呢…这样会造成系统之间的严重耦合,可以用mq的方式,A将数据发到mq上,然后需要的系统自己来取数据,这样就避免了A系统频繁的代码更改削
2022-02-25 23:04:14
791
原创 Day4: zookeeper集群
zookeeper集群zookeeper遵循AP,追求最终一致性(根据zxid(事务id)记录数据是否过期,所以遵守顺序一致性)zk在集群时,有三种类型的节点leader: 可以进行数据的读写follower: 只能进行读操作,可以参加leader选举observer: 只能进行读操作,不能进行leader选举建立集群:为每个server创建对应的dataDir和dataLogdir在每个dataDir文件夹中创建一个myid文件,里面写上服务器的唯一标识为每个server编写对应
2022-02-23 22:02:22
651
原创 Day3 zk的watch机制及分布式锁的实现
watch机制watch类似于观察者模式,watch的实现采用了nio,客户端可以通过(get -w [name])的方式监听一个节点,当该节点触发了create,set,delete事件时,监听该节点的客户端将会收到异步通知一个连接监听了/test[zk: localhost:2181(CONNECTED) 4] get -w /test0000000002yyy另一个连接更改了/test[zk: localhost:2181(CONNECTED) 0] set /test000000000
2022-02-22 22:43:06
361
原创 Day2: zookeeper入门
zookeeper安装zookeeperZookeeper zookeeper能做什么zookeeper是一种分布式协调服务,用于管理大型主机,在分布式系统中管理和协调服务是一个复杂的过程,zookeeper允许开发人员专注于应用程序的设计,而不用担心应用的分布式特性分布式协调组件当通过nginx进行负载均衡时,此时服务A-1,A-2是冗余存储的,flag都为true,当A-2的值修改为false时,此时A-1与A-2的数据就不一致了,这时ZK就可以修改A-1中的数据,让服务之间的数
2022-02-21 22:32:37
361
原创 Day1: Eureka的简单使用
eureka是一个服务注册发现框架,用于在传统的rpc调用中管理各个微服务之间的关系使用了***C/S***的架构quickstart标题引入依赖 <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-netflix-eureka-server</artifact
2022-02-20 20:06:52
806
原创 链表
链表可变数组应具备的特点:1、根据需求自动变大2、知道它目前的大小3、可以精确访问其中的元素编写函数实现将结构体Array当作一个数组使用上代码Array array_create(int init_size)//-->初始化结构(数组) void array_free(Array *a)// -->释放数组所占的空间int array_size(const Array*a)//-->数组的长度int* array_at(Array*a,int index)//--
2020-12-05 22:53:18
168
原创 全局变量 静态本地变量 结构体
全局变量1、全局变量的定义与注意点1、定义在函数外面的变量是全局变量2、全局变量具有全局的生存期和作用域3、它们与任何函数都无关4、在任何函数内部都可以使用它们上代码#include<stdio.h>int f(void); int gAll = 12;int main(){ printf("in main gAll=%d\n",gAll); f(); printf("now in main gAll=%d\n",gAll); return 0;}int
2020-11-28 23:10:55
1957
1
原创 关于指针和多维数组 字符串
关于指针与多维数组1、多重指针辨析`int a = 9;int a = 9; int *pa = &a;int **ppa = &pa;int ***pppa = &ppa;printf("%d\n",**ppa);printf("%d\n",&ppa);printf("%d\n",pa);printf("%d\n",&pa);printf("%d\n",&a);printf("%d\n",&pppa);printf("%d\n
2020-11-21 20:58:23
197
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人