CodeMartain
有阳光 却感觉冷
展开
-
一致性hash算法
这样我们在新增节点的时候,只需要通过hash算法将下一个节点的部分数据分配给新增的节点即可,减少节点的时候,只需要将减少的节点的数据插入到顺时针的下一个节点即可;但是这样随着数据量的增多,如果数据库实例要增加,那么就要重新及逆行数据的分配(即之前用户的数据路由到的库的数据可能要做数据迁移,这要付出时间和代价,对企业来讲成本很高;结果显示数据库的数据量明显分配不均匀呀,这是因为使用 hash值划分hash环不太平均,导致区间大的分配到的数据就多,划分小的分配到的数据就小;如果没有大于当前节点的哈希值的数据。原创 2023-10-27 12:00:59 · 290 阅读 · 0 评论 -
微服务的声明式调用
声明带有该接口的REST客户端应该是创建(例如自动装配到另一个组件)。如果SC LoadBalancer可用它将被用来负载平衡后端请求,负载均衡器可以使用与虚拟客户端相同的名称(即值)配置。因为服务注册到注册中心需要一定的时间,一般是4s左右,这个可以自己设置;如果是刚启动项目就去请求,大概率会得到下面的页面;具体的代码见前面的项目搭建,这里也放上。然后在这个微服务中调用别的微服务。原创 2022-10-22 21:34:36 · 238 阅读 · 0 评论 -
Hystrix熔断器
传递参数有2中方法,一种是传入多个参数值,会按顺序填充到url后面的参数占位符中,一种是采用map传入多个参数,这时一定要使用HashMap。一个简单的场景就是 家里的保险丝,当电流过大时保险丝熔断,是的家里的其他电器不至于造成大规模的损坏;另一个当一个微服务中有很多请求时,会导致他调用其他微服务的时候(正常的服务线程)造成积压,产生雪崩;我们可以针对不同的微服务有选择的开启熔断,即需要在那个微服务里开启熔断,就在以来中引入相应的依赖。发现这个注解被废弃了,但是在最新的版本中没有别的注解可用,原创 2022-10-15 21:33:30 · 487 阅读 · 0 评论 -
分布式文件系统[MinIO]YYDS
先百度一下什么是MinIO:Minio 是个基于Golang 编写的开源对象存储套件,基于Apache License v2.0开源协议,虽然轻量,却拥有着不错的性能。它兼容亚马逊S3云存储服务接口。可以很简单的和其他应用结合使用,例如 NodeJS、Redis、MySQL等。原创 2022-09-11 22:52:07 · 491 阅读 · 0 评论 -
MicroService详细刨析
微服务框架大体画了下,框架还有好多没有用上,后续会从项目开始;每一个模块之间都有千丝万缕的联系,当一个模块扛不住并发时,常用的解决方案~~~1,拆分模块2,加集群,设置负载均衡微服务划分方法不同,拆分为围绕业务功能组织的服务。此类服务采用该业务区域的广泛软件实现,包括用户界面、持久存储和任何外部协作。因此,团队是跨职能的,包括开发所需的全部技能:用户体验,数据库和项目管理。微服务的特性:1,独立运行在自己的进程中—每个服务都是一个server(基本上);2,一系列服务共同构建起一原创 2022-05-01 11:53:37 · 222 阅读 · 0 评论 -
以身犯险~CSRF跨站请求伪造
CSRF~跨站请求伪造什么是跨站伪造请求呢?在我们日常访问网站时,有时候是跨域的,如果没有安全机制做保证,这很容易造成信息的泄露;比如按照上面这个例子~跨域请求的安全机制是关闭的;现在我们将其开启之后新建一个简单的web项目,端口为8081伪造的前端登录页,提交的地址是8080服务器的<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title&.原创 2022-04-30 16:54:06 · 241 阅读 · 0 评论 -
[大数据]同步问题实现
技术栈SpringbootSolrZookeeperDubboMybatisRabbitMQ原创 2022-04-01 18:52:19 · 2189 阅读 · 0 评论 -
RabbitMQ
AMQP什么是AMQPAMQP是一个高级消息队列协议,使得遵从该规范的客户端中的进程能够传递异步消息的网络协议。什么是消息队列?其本质是一个转发器,作为消息的发布者与消息的接收者的桥梁;AMQP工作模型这里以Rabbit为例所有服务器实现都应该遵从AMQP协议,否则就服务器之间无法实现异步消息传输;在服务器中,三个主要功能模块连接成一个处理链以便完成预期的功能:首先是两端publisher与consumer,可以理解为生产者消费者;“exchange”接收发布应用程序发送的消原创 2022-03-15 14:37:35 · 2249 阅读 · 0 评论 -
解决Starting zookeeper ... FAILED TO START
发现启动时因为jvm内存设置的过高,内存溢出了,在zookeeper-env文件中将内存改小一些,(我直接把他给删了,简单粗暴~记得备份哦!)原创 2022-03-07 14:50:49 · 2593 阅读 · 0 评论 -
Apache-Solr的部署与使用
~在海量数据下,对MySQL或Oracle进行模糊查询或条件查询的效率是很低的;~> Solr 是一个独立的企业搜索服务器,具有类似 REST 的 API。 你把 通过 JSON、XML、CSV 或 HTTP 上的二进制文件(称为“索引”)。 您通过 HTTP GET 查询它并接收 JSON、XML、CSV 或二进制结果。常见的搜索解决方案~>基于Apache Lucene(全文检索工具库)实现搜索>基于谷歌API实现搜索和基于百度API实现搜索;Solr 在使用 Lucene 搜索库并对原创 2022-03-05 22:51:06 · 475 阅读 · 0 评论 -
Solr~cloud模式
Solr~cloud模式将solr作为双节点集群(伪集群)启动;以Solr~cloud模式模式启动solr1,进入solr的安装目录下~cd /usr/local/solr-8.11.1/2,启动命令: ./bin/solr start -e cloud3,按照提示进行相应配置询问我们要运行多少个节点。请注意最后一行末尾的;默认的节点数2第一个节点默认设置端口为~8983,第二个节点将在其上运行的端口~7574设置好参数之后,会启动两个端口Solr 的两个实例已在原创 2022-03-05 12:01:21 · 1909 阅读 · 0 评论 -
Redis
Redis 是一个开源(BSD许可)的,内存中的数据结构存储系统,它可以用作数据库、缓存和消息中间件。它支持多种类型的数据结构~~如 字符串(strings), 散列(hashes), 列表(lists), 集合(sets), 有序集合(sorted sets) 与范围查询, bitmaps, hyperloglogs 和 地理空间(geospatial)原创 2022-03-01 10:31:57 · 171 阅读 · 0 评论 -
KindEditor的使用
KindEditor是一套开源的HTML可视化编辑器,主要用于让用户在网站上获得所见即所得编辑效果,兼容IE、Firefox、Chrome、Safari、Opera等主流浏览器。KindEditor是基于JavaScript的插件。里面包含了丰富的组件,如:多文件上传组件、富文本编辑框,使用KindEditor可以大大的降低页面开发难度;KingEditor特点体积小,加载速原创 2022-02-27 22:55:33 · 2388 阅读 · 0 评论 -
Nginx~http+反向代理
nginx的作用 1. 提供http协议代理只要支持http协议访问的内容都可以使用nginx代理; 2. 搭建虚拟主机监听主机的某个端口,对外支持访问这个接口的http访问 3. 负载均衡nginx可以代理多个主机,内置负载均衡策略原创 2022-02-26 10:28:25 · 2028 阅读 · 0 评论 -
Dubbo实现CURD
dubbo3实现服务的调用原创 2022-02-25 21:20:49 · 356 阅读 · 0 评论 -
FastDFS-分布式文件管理系统
【FastDFS】的架构FastDFS环境搭建与应用原创 2022-02-24 22:27:09 · 424 阅读 · 0 评论 -
Dubbo Base~Two
上一篇文章介绍了Dubbo2代码的实现;本篇文章在上篇文章的基础上进行;Dubbo3实现代码目录结构—>>父依赖—> <dependencyManagement><!-- 避免使用 spring-boot-parent--> <dependencies> <!-- https://mvnrepository.com/artifact/org.springframework.boot/spring-bo原创 2022-02-21 09:59:07 · 827 阅读 · 0 评论 -
Dubbo Admin 界面搭建
我们在zookeeper中放入数据时有时候可读性并不是很好;我们可以尝试dubboadmin界面搭建:DubboAdmin代码下载开启dubboadminjava -jar dubbo-admin-0.2.0.jarINFO 9188 --- [ main] o.s.b.w.embedded.tomcat.TomcatWebServer : Tomcat started on port(s): 8080 (http) with context path ''.原创 2022-02-20 20:12:24 · 778 阅读 · 0 评论 -
Dubbo Base~One
Apache Dubbo 是一款高性能、轻量级的开源服务框架,Dubbo框架不仅仅是具备RPC访问功能,还包含服务治理功能。原创 2022-02-17 17:02:07 · 846 阅读 · 0 评论 -
分布式--Zookeeper~第三方存储库
ZookeeperApache ZooKeeper致力于开发和维护开源服务器,以实现高度可靠的分布式协调。ZooKeeper 是一项集中式服务,用于维护配置信息、命名、提供分布式同步和提供组服务。所有这些类型的服务都以某种形式由分布式应用程序使用。...原创 2022-02-17 15:49:47 · 828 阅读 · 0 评论 -
单体架构分布式架构~RPC
RPC为什么要学习RPC?单体架构分布式架构RPCRPC与HTTPRPC的实现RMI实现RPC为什么要学习RPC?这就要讲项目架构的历史渊源了,在以前互联网不发达的时候,数据访问的并发量不大,这时候的项目大多数是以单体架构为主;什么是单体架构?单体架构一个项目里面的全部代码实现全部的业务功能;画图便于理解,这里以jd.com为例当我们要访问业务时,这些业务实现的代码都打包在一个项目包里,这样的做法有优点,也有缺点;优点:1,部署简单----部署一个项目代码2,成本低----只需要一原创 2022-02-14 16:59:53 · 439 阅读 · 0 评论