- 博客(81)
- 收藏
- 关注
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 微服务--Gateway--服务网关
大家都都知道在微服务架构中,一个系统会被拆分为很多个微服务。那么作为客户端(pc androud ios 平板)要如何去调用这么多的微服务呢?如果没有网关的存在,我们只能在客户端记录每个微服务的地址,然后分别去调用。这样的架构,会存在着诸多的问题:客户端多次请求不同的微服务,增加客户端代码或配置编写的复杂性认证复杂,每个服务都需要独立认证。存在跨域请求,在一定场景下处理相对复杂。(跨域: 浏览器的ajax从一个地址访问另一个地址:
2022-08-29 08:00:00
4225
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 微服务架构介绍
1.1系统架构演变随着互联网的发展,网站应用的规模也在不断的扩大,进而导致系统架构也在不断的进行变化。从互联网早起到现在,系统架构大体经历了下面几个过程:单体应用架构--->垂直应用架构--->分布式架构--->SOA架构--->微服务架构,当然还有悄然兴起的服务网格化)。接下来我们就来了解一下每种系统架构是什么样子的, 以及各有什么优缺点。
2022-08-26 04:45:00
1362
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 前后端分离---微信支付操作
2.根据查找到的订单判断是否支付,如果支付,关闭每隔3秒查询订单的设计。显示订单信息,并且每隔3秒查询一次支付状态。script中引入 vue-qr。vue前端,以弹窗形式显示信息。(2)http请求客户端。controller层。controller层。...
2022-08-21 00:00:00
1512
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 Mysql
1.数据库的介绍1.1 数据库数据库(Database DB)是按照数据结构来组织、存储和管理数据的仓库(存储数据的仓库),它产生于距今六十多年前,随着信息技术和市场的发展,特别是二十世纪九十年代以后,数据管理不再仅仅是存储和管理数据,而转变成用户所需要的各种数据管理的方式。数据库有很多种类型,从最简单的存储有各种数据的表格到能够进行海量数据存储的大型数据库系统都在各个方面得到了广泛的应用。在信息化社会,充分有效地管理和利用各类信息资源,是进行科学研究和决策管理的前提条件。数据库技术是管理信息系
2022-04-23 20:55:38
3408
原创 循环迭代功能
要在Java中实现这样的功能,我们可以使用递归方法遍历层级结构,并在遍历过程中判断层级,当达到第四级时执行更新操作。Java 一个十级的层级,根据父键关联,已知第一层id,怎么去找到其他的层级,并且从第四级开始,将id 和名称 更新为对应的三级,代码怎么写。方法负责递归处理,它会遍历每一层的子节点,并在达到第四级时尝试更新节点的名称为第三级的名称。方法逻辑简化了寻找第三级祖先的过程,实际实现时可能需要根据实际的数据结构和层级关系进行调整。findThirdLevelAncestor 详细写下。
2024-06-23 14:26:15
184
原创 怎么给切面增加开关
为切面添加开关功能,可以在运行时控制是否启用切面逻辑,这对于调试、性能优化或特定场景的灵活控制非常有用。下面是一个基于Spring AOP和配置属性实现的简单示例,展示了如何为切面逻辑添加开关。
2024-05-07 16:15:00
185
原创 单元测试 mockito(二)
when(obj.someMethod()).thenXxx():其中obj可以是mock对象doXxx().wien(obj).someMethod():其中obj可以是mock/spy对象spy对象在没有插桩时是调用真实方法的,写在when中会导致先执行一次原方法,达不到mock的目的,需使用doXxx().when(obj).someMethod()
2024-04-04 18:35:25
727
1
原创 单元测试mockito(一)
原理:bytebuddy,教程:https://www.bilibili.com/video/BV1G24y1a7bd。
2024-03-31 23:23:50
651
原创 黑马设计模式笔记(一)
类图(Class diagram)是显示了模型的静态结构,特别是模型中存在的类、类的内部结构以及它们与其他类的关系等。类图不显示暂时性的信息。类图是面向对象建模的主要组成部分。
2024-02-27 15:30:34
1252
原创 Sentinel降级操作
2.对代码进行访问控制,在可视化工具中对seckillSkus进行数据设置。1.通过对feign调用的降级 如果访问失败,则返回另外的信息。blockHandler的内容是限流降级后的操作方法。value的名称是可视化页面的限流处理名称。3.统一config配置返回降级信息。4.使用注解结合可视化操作进行控制。兜底方法返回另外的信息。两个方法返回类型要一致。正常的feign调用。
2024-01-22 11:29:39
542
原创 Openstack云计算(六)Openstack环境对接ceph
如果没有PG,在成千上万个OSD上管理和跟踪数百万计的对象的复制和传播是相当困难的。此时,增加pgp_num的值,PG才开始从源OSD迁移至其他的OSD,正式开始再平衡。PGP是为了实现定位而设置的PG,它的值应该和PG的总数(即pg_num)保持一致。对于Ceph的一个pool而言,如果增加pg_num,还应该调整pgp_num为同样的值,这样集群才可以开始再平衡。PG总数 = (OSD总数 * 100) / 最大副本数 ** 结果必须舍入到最接近的2的N次方幂的值。
2024-01-14 10:30:00
1437
原创 Openstack云计算(五)ceph
Ceph是一种为优秀的性能、可靠性和可扩展性而设计的统一的、分布式文件系统。ceph]的统一体现在可以提供文件系统、块存储和对象存储,分布式体现在可以动态扩展。在国内一些公司的云环境中,通常会采用ceph作为openstack的唯一后端存储来提高数据转发效率。Ceph项目最早起源于Sage就读博士期间的工作(最早的成果于2004年发表) ,并随后贡献给开源社区。在经过了数年的发展之后,目前已得到众多云计算厂商的支持并被广泛应用。RedHat及OpenStack都可与Ceph整合以支持虚拟机镜像的后端存储。
2024-01-11 11:31:35
1451
原创 Openstack云计算(四)horizon Web管理界面,区域,cinder
理解 horizonHorizon为Openstack提供一个WEB前端的管理界面(UI服务)通过Horizone所提供的DashEoard服务,管理员可以使用通过WEB UI对Openstack整体云环境进行管理,并可直观看到各种操作结果与运行状态。安装和配置编辑文件 /etc/openstack-dashboard/local_settings 并完成如下动作:在 controller 节点上配置仪表盘以使用 OpenStack 服务:controller改为自己的服务端点。
2024-01-08 08:45:00
1718
原创 OpenStack云计算(三)neutron
Neutron 概述传统的网络管理方式很大程度上依赖于管理员手工配置和维护各种网络硬件设备;而云环境下的网络已经变得非常复杂,特别是在多户场景里,用户随时都可能需要创建、修改和删除网络,网络的连通性和隔离不已经太可能通过手工配置来保证了。如何快速响应业务的需求对网络管理提出了更高的要求。传统的网络管理方式已经很难胜任这项工作,而"软件定义网络(softwaredefined networking,SDN)"所具有的灵活性和自动化优势使其成为云时代网络管理的主流。
2024-01-05 10:00:26
2090
2
原创 OpenStack云计算(二)镜像和计算
nova-conductor:nova-compute经常需要更新数据库,比如更新和获取虚机的状态。出于安全性和伸缩性的考虑, nova-compute并不会直接访问数据库,而是将这个任务委托给 nova-conductor。在/ etc /新星nova.conf中,nova通过司机= filter_scheduler这个参数来配置nova-scheduler。通过权重计算选择最优(权重值最大)的计算节点创建虚拟机,空闲内存越多,权重越大,instance将被部署当前空闲内存最多的计算节点上。
2024-01-03 11:19:11
1482
原创 OpenStack云计算(-) 简介与部署Keystone
keystone 是OpenStack的组件之一,用于为OpenStack家族中的其它组件成员提供统一的认证服务,包括身份验证、令牌的发放和校验、服务列表、用户权限的定义等等。云环境中所有的服务之间的授权和认证都需要经过keystone,因此keystone是云平台中第一个即需要安装的服务。管理用户及其权限维护OpenStack Services的EndpointAuthentication (认证)和Authorization (鉴权)安装OpenStack包的相关 命令。
2023-12-29 17:40:38
1990
原创 RabbitMQ的基础使用
4.监听消息 使用@RabbitListener 注解 必须有@EnableRabbit才能生效 如果是创建交换机,创建队列 不需要有@EnableRabbit注解。* @RabbitHandler 可以标在方法上 场景 一个队列返回的类型不同 使用这个注解来重载。@RabbitHandler 可以标在方法上 场景 一个队列返回的类型不同 使用这个注解来重载。3.广播模式,不受路由key局限,只要交换机和队列有绑定关系,就可以收到消息;操作创建交换机,创建队列,创建绑定关系。* 使用rabbitMQ。
2023-12-22 10:40:41
887
2
原创 RabbitMQ如何保证消息可靠性
首先确定消息可能在哪些位置丢失---不同的位置可以有不同的解决方案。1.从生产者--交换机2.从交换机--队列3.队列里面4.消费者消费时。
2022-09-28 08:15:00
667
1
原创 RabbitMQ
提供了5种模式。简单模式--Hello2.工作者模式--work queues3.发布订阅模式4.路由模式--router5.主题模式--topic。
2022-09-27 08:30:00
864
原创 消息中间件--RabbitMQ
RabbitMQ也有类似的权限管理;在RabbitMQ中可以虚拟消息服务器Virtual Host,每个Virtual Hosts相当于一个相对独立的RabbitMQ服务器,每个VirtualHost之间是相互隔离的。可登陆管理控制台,同时可以查看rabbitmq节点的相关信息(进程数,内存使用情况,磁盘使用情况等)但无法查看节点的相关信息(上图红框标识的部分)。可登陆管理控制台,可查看所有的信息,并且可以对用户,策略(policy)进行操作。仅可登陆管理控制台,无法看到节点信息,也无法对策略进行管理。
2022-09-26 08:00:00
880
原创 mysql高级--锁
锁是计算机协调多个进程或线程并发访问某一资源的机制(避免争抢)。在数据库中,数据也是一种供许多用户共享的资源。如何保证数据并发访问的一致性、有效性是所有数据库必须解决的一个问题,锁冲突也是影响数据库并发访问性能的一个重要因素。从这个角度来说,锁对数据库而言显得尤其重要,也更加复杂。行锁特点 :偏向InnoDB 存储引擎,开销大,加锁慢;会出现死锁;锁定粒度最小,发生锁冲突的概率最低,并发度也最高。InnoDB 与 MyISAM 的最大不同有两点:一是支持事务;二是 采用了行级锁。
2022-09-25 08:00:00
502
原创 mysql高级--索引
MySQL官方对索引的定义为:索引(index)是帮助MySQL高效获取数据的数据结构(有序)。在数据之外,数据库系统还维护者满足特定查找算法的数据结构,这些数据结构以某种方式引用(指向)数据, 这样就可以在这些数据结构上实现高级查找算法,这种数据结构就是索引。如下面示意图所示 :左边是数据表,一共有两列七条记录,最左边的是数据记录的物理地址(注意逻辑上相邻的记录在磁盘上也并不是一定物理相邻的)。
2022-09-24 07:30:00
536
1
原创 mysql高级--体系结构,储存引擎
和大多数的数据库不同, MySQL中有一个存储引擎的概念, 针对不同的存储需求可以选择最优的存储引擎。 存储引擎就是存储数据,建立索引,更新查询数据等等技术的实现方式。存储引擎是==基于表的==,而不是基于库的。 Oracle,SqlServer 等数据库只有一种存储引擎。MySQL提供了插件式的存储引擎架构。所以MySQL存在多种存储引擎,可以根据需要使用相应引擎,或者编写存储引擎。
2022-09-23 08:15:00
565
1
原创 设计模式--策略模式
将类中经常改变或者可能改变的部分提取为作为一个抽象策略接口类,然后在类中包含这个对象的实例,这样类实例在运行时就可以随意调用实现了这个接口的类的行为。 比如定义一系列的算法,把每一个算法封装起来,并且使它们可相互替换,使得算法可独立于使用它的客户而变化,这就是策略模式。(1)环境类(Context):通过 ConcreteStrategy 具体策略类来配置,持有 Strategy 对象并维护对Strategy 对象的引用。可定义一个接口来让 Strategy 访问它的数据。
2022-09-20 08:00:00
883
4
原创 设计模式--模板方法
在模板模式(Template Pattern)中,一个抽象类公开定义了执行它的方法的方式/模板。它的子类可以按需要重写方法实现,但调用将以抽象类中定义的方式进行。这种类型的设计模式属于行为型模式。
2022-09-19 08:15:00
587
原创 设计模式--观察者模式
观察者(Observer)模式的定义:指多个对象间存在一对多的,当一个对象的状态发生改变时,所有依赖于它的对象都得到通知并被自动更新。这种模式有时又称作发布-订阅模式、模型-视图模式,它是对象行为型模式。
2022-09-18 08:30:00
601
原创 设计模式--代理模式
静态代理就是写死了在代理对象中执行这个方法前后执行添加功能的形式,每次要在接口中添加一个新方法,则需要在目标对象中实现这个方法,并且在代理对象中实现相应的代理方法。
2022-09-17 08:00:00
825
1
原创 设计模式--适配器模式
定义:适配器模式把一个类的接口变换成客户端所期待的另一种接口,从而使原本因接口不匹配而无法在一起工作的两个类能够在一起工作。:类的适配器模式、对象的适配器模式。
2022-09-16 05:30:00
712
原创 设计模式--工厂模式
工厂模式将目的将创建对象的具体过程屏蔽隔离起来,从而达到更高的灵活性,工厂模式可以分为三类:简单工厂模式(Simple Factory)工厂方法模式(Factory Method)抽象工厂模式(Abstract Factory)我们在了解工厂模式时,先从现实生活说起:(1)在没有工厂的时代,如果客户需要一款宝马车,那么就需要客户去创建一款宝马车,然后拿来用。(2)简单工厂模式:后来出现了工厂,用户不再需要去创建宝马车,由工厂进行创建,想要什么车,直接通过工厂创建就可以了。
2022-09-15 08:00:00
667
原创 单例设计模式
单例模式(Singleton Pattern)是 Java 中最简单的设计模式之一。这种类型的设计模式属于,它提供了一种。这种模式涉及到一个单一的类,该类,同时确保只有单个对象被创建。这个类提供了一种访问其唯一的对象的方式,可以直接访问,不需要实例化该类的对象。
2022-09-14 09:35:24
657
原创 购物车功能开发
以点餐系统的购物车开发模式,梳理相关操作,包含所选商品加入购物车,查看购物车内容,以及清空购物车的相关操作。3.删除商品和清空购物车的操作本质上都是删除的操作,区别在于接收的参数是单个或多个。商品类型多种多样,例如点餐购物车里菜品,或者套餐也可以分别将其id设置其中。本质上也是查看购物车中该用户的所有商品,也需要用到用户id这个子段。(1)以用户id和商品id为关键字段查看是否已经存在该商品。(2)如果已经存在则不需要重复添加,而是修改商品数量。(3)如果不存在则添加该商品。
2022-09-13 08:15:00
878
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人