分布式开发
老咸驴
记录下学习过程,欢迎评测!
展开
-
一致性哈希算法、虚拟节点、twemproxy实现hash分片、准备Redis实例、twemproxy安装、使用和总结
一致性哈希算法:是一种分布式算法,常用于负载均衡(twemproxy采用此方法)解决将key-value均匀分配到众多server上的问题虚拟节点:解决一致性hash倾斜的问题twemproxy实现hash分片通过引入一个代理层,可以将后端的多台redis或Memcached实例进行同一管理与分配,使应用程序只需要在Twemproxy上进行操作,而不用关心后面具体有多少个真实的Redis或Memcached存储 支持失败节点自动删除 减少客户端直接与服务器的连接数量 ...原创 2020-08-04 00:08:13 · 430 阅读 · 0 评论 -
集群维护(重分配哈希槽)、移除,添加节点护、Redis集群扩展、twemproxy实现hash分片
对集群维护调整数据的存储,就是对slot哈希槽和节点的调整。Redis内置的集群支持动态调整,可以在集群不停机的情况下,改变slot、添加或删除节点。 ps -ef | grep redis ./redis-cli -p 7001 cluster nodes (查看集群信息)#分片重哈希,可以连接任意节点,对哈希槽进行重分配 #cd /root/redis-4.0.14/src/ ./redis-trib.rb reshard 192.168.200.130:7001#...原创 2020-08-04 00:07:35 · 503 阅读 · 0 评论 -
sentinel小结、互联网冷备和热备、Sentinel整合Springboot、Redis内置集群
sentinel三大任务: 监控:不断检查你的主服务器和从服务器是否运作正常 提醒:当被监控的某个redis服务器出现问题时,sentinel可以通过API向管理员或者其他应用程序发送通知 自动故障迁移:当一个主服务器不能正常工作时,sentinel会开始一次自动故障转移操作,它会将失效主服务器的其中一个服务器升级为新的主服务器,并让失效主服务器的其他从服务器改为复制新的主服务器。 当客户端试图连接失效的主服务器时,集群也会向客户端返回新主服务器的地址,使得集群可以使用新主服务器代...原创 2020-08-04 00:06:48 · 267 阅读 · 0 评论 -
redis手动主从转移、部署sentinel(哨兵)
redis自身集成了读写分离供用户使用。只需要在redis配置文件里加一条 slaveof host port语句配置即可,现在开始配置主从环境: 进入redis: cd /usr/local/redis/bin ./redis-cli -h 192.168.200.130 配置redis从库(从库只能读不能写)复制redis下的bin文件√cd /usr/local/redis //进入#cp bin redis01 -Rcp -R bin/ ...原创 2020-08-04 00:06:11 · 394 阅读 · 0 评论 -
linux部署redis
redis分布式缓存 ps -ef | grep redis 单机版性能不足,可用性不高redis高可用 sentinel(哨兵)sentinel整合springbootredis内置集群虚拟机中安装C++环境:yum install gcc-c++ 1.yum clean all 2.yum makecache在SecureCRT中右键连接名点击:connect SFTP connection 拖动:redis-4.0.14...原创 2020-08-04 00:04:23 · 97 阅读 · 0 评论 -
websocket连接服务器获取mq消息测试(代码)
websocket连接服务器获取mq消息测试RabbitMQ监听消息添加文章订阅监听 channel啊监听器啊等等 获取订阅类点赞类消息,然后可查询有多少条新消息MyWebSocketHandler //约定用户第一次请求携带的数据:{"userId":"1"} //获取用户请求数据并解析 String json = msg.text(); //解析json数据,获取用户id String userId = MAPPER.r...原创 2020-08-04 00:11:44 · 884 阅读 · 0 评论 -
操作RabbitMQ完成消息通知,NIO、IO、netty基本分析
将等候通知的消息从 tb_notice_fresh 转移到RabbitMQ中//subscribe订阅通知 //1 创建Rabbit管理器 RabbitAdmin rabbitAdmin = new RabbitAdmin(rabbitTemplate.getConnectionFactory()); //2 声明Direct类型交换机,处理新增文章消息 DirectExchange exchange = new DirectExchange("a...原创 2020-08-02 17:49:59 · 867 阅读 · 0 评论 -
JVM删除不干净及安装过程、整合Netty和WebSocket实现双向通信
1.https://blog.csdn.net/qq_32066831/article/details/103216758 将注册表及服务中的残存数据(jvm)删除干净——CCleaner(完美清除)2.https://blog.csdn.net/qq_32066831/article/details/103216904 安装(其他博主的内容)改进文章订阅功能,创建RabbitMQ队列存放新消息通知、改进发布文章后群发消息通知功能整合Netty和WebSocket实现双向通信do...原创 2020-08-02 17:48:15 · 151 阅读 · 0 评论 -
消息中间件及面试问题
rabbitmqwebsocketnetty xx通讯框架1.redisTemplete key时编码过后的key,在其他的客户端去查询的时候查询不到数据2.系统通知3.为什么使用MQ,为什么要选择rabbitmq?使用MQ以后有什么好处和坏处 解耦、异步、肖峰 使用MQ系统后的可用性降低了,同时系统的复杂度提高了,还有一个就是一致性的问题 (消息的重复消费、消息的乱序问题、消息的堆积问题) 1.重复消费:做好接口的幂等性,数据库中数据一致(七...原创 2020-08-02 17:45:43 · 205 阅读 · 0 评论 -
eureka与encrypt启动与注册问题排错
encrypt网关拦截与RSA加密解密(拦截相应网关传递的信息,对信息进行加密解密——练习,通过test类生成加密后的数据,将数据放入postman中查询,在idea中打印加密前后及传送网关的数据)1.注解失效,换成最新注解 <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-netfl...原创 2020-08-02 17:44:16 · 207 阅读 · 0 评论 -
整合即时通讯系统、四种加密算法概要、Openssl基本使用
http://www.localhost:9008/chatroom.htmlhttps://console.easemob.com/app-detail/usertensquare_user/static/..即时通信接口加密 摘要算法:不可逆、单向,计算出的长度是固定的、分布式网络使用、CRC\MD5√\SHA等 对称加密:加密解密使用相同的密钥,速度快-离线的大量数据加密 DES\AES 非对称加密:加密解密使用不同的密钥,算法强度复杂,一对密钥:私钥加密、公钥...原创 2020-08-02 17:43:05 · 278 阅读 · 0 评论 -
docker基本操作、websocket环信云即时通讯
虚拟机启动时自动启动docker:systemctl enable docker删除指定名称容器:docker rm 容器名停止正在使用的容器 : docker stop 容器名开启指定名称容器 :docker start 容器名环信服务器端集成Swagger文档用于测试各个API接口http://api-docs.easemob.com/#/%6E8%8E%B7%E5%8F%96token 我的 url:http://a1.easemob.com/1128200716148278/t...原创 2020-08-02 17:41:41 · 771 阅读 · 0 评论 -
整合Id生成器在Spring中的应用
后端article的基本增删改查操作//启动类中注册ID生成器 @Bean public IdWorker createIdWorker() { return new IdWorker(1, 1); }//利用生成器生成id并保存评论的点赞功能 public void save(Comment comment) { //分布式id生成器生成id String id = idWorker.nextId(...原创 2020-08-02 17:40:15 · 109 阅读 · 0 评论 -
MongoDB客户端、linux启动mongodb、mongodb基本操作
MongoDBCMD命令行操作:mongod.exe --dbpath=D:\IDEA-workspace\tensquare\data 设置数据库存储位置 默认端口号27017 (mongod.exe -port 8989 设置指定端口号)再开一个新的CMD:打开mongo(可自动连接27017端口) (mongo 127.0.0.1:8989 连接指定地址)Linux(虚拟机)中启动mongo: docker run -id --na...原创 2020-08-02 17:38:27 · 341 阅读 · 0 评论 -
linuxJVM初学习
docker -v 查看版本systemctl status dockerdocker 基本命令docker images 查看镜像docker run -id --name=tensquare_mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 centos/mysql-57-centos7docker psdocker search mysql首先大家应该都知道,操作系统主要分3个部分,分别是:内核、库、应用程序1.内核主要管理...原创 2020-08-02 17:35:46 · 722 阅读 · 0 评论 -
nginx、linuxJVM、Securecrt基本配置及概念
Nginx:作为负载均衡服务器:Nginx 既可以在内部直接支持 Rails 和 PHP 程序对外进行服务,也可以支持作为 HTTP代理服务器对外进行服务。基于swagger开发 http://localhost/801 进入这个服务器操作接口 负载均衡也是 Nginx常用的一个功能,当一台服务器的单位时间内的访问量越大时,服务器压力就越大,大到超过自身承受能力时,服务器就会崩溃。为了避免服务器崩溃,让用户有更好的体验,我们通过负载均衡的方式来分担服务器压力。我们可以建立很多很多服务器,组成...原创 2020-08-02 17:33:14 · 272 阅读 · 0 评论