自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(102)
  • 收藏
  • 关注

原创 8.微服务项目结合SpringSecurity项目结构

spring_security: Spring Security相关配置。service_acl: 实现权限管理功能代码。service_base:工具类。api_gateway: 网关。创建父工程用来管理依赖版本。

2024-05-12 10:10:26 449

原创 7.用户、角色、菜单表SQL

【代码】7.用户、角色、菜单表SQL。

2024-05-11 21:33:15 484

原创 13.Netty组件EventLoopGroup和EventLoop介绍

是一个单线程的执行器(同时维护了一个Selector),里面有run方法处理Channel上源源不断的io事件。1.继承java.util.concurrent.ScheduledExecutorService因此包含了线程池中所有的方法。2.继承netty自己的OrderedEventExecutor。

2024-05-11 20:33:58 450

原创 12.Netty入门案例

【代码】12.Netty入门案例。

2024-05-07 22:55:21 733 1

原创 11.Netty简单认识

Netty是一个异步的,基于事件驱动(采用多路复用技术Selector)的网络应用框架。用于快速开发可维护、高性能的网络服务器和客户端。IO事件发生时才会进行相应的处理。可连接,可读,可写事件。

2024-05-07 21:48:55 394

原创 6.SpringSecurity自定义用户登录页面

上面的/user/login也可以换成/login,主要是以/login结尾。页面中的username,password不能修改,只能是固定值。

2024-05-06 23:09:31 615

原创 5.Spring Security-web权限方案

spring security中的用户接口和实现类UserUser类中的构造器(用户名,密码,权限集合)定义配置类继承类@Autowired@Override@Bean定义类实现接口@Override这里就可以写入查询数据库的验证用户的逻辑spring:@Data@Autowired@Overridethrow new UsernameNotFoundException("用户名不存在");

2024-05-05 22:14:28 478 1

原创 4.Spring Security重要接口

当什么都没有配置的时候,账号和密码是由spring security定义生成的。在实际项目中账号和密码都是从数据库中查询出来的。所以要通过自定义逻辑控制认证逻辑。

2024-05-04 23:41:57 393

原创 3.SpringSecurity基本原理

SpringSecurity本质是一个过滤器链。十多个过滤器构成一个过滤器链。这些过滤器在项目启动就会进行加载。每个过滤器执行放行操作才会执行下一个过滤器。

2024-05-04 23:10:44 675

原创 2.spring security 简单入门

创建springboot 项目,引入spring security坐标。

2024-05-04 21:55:10 283

原创 1.Spring Security介绍

还有另外一个安全认证权限框架是Apache下轻量级权限控制框架Shrio框架。CAS-spring-security-cas.jar 单点登录功能。2.授权authorization,判断用户是否有权限去做某些事情。shiro的缺点是在web环境下一些特定的需求需要手动编写代码定制。1.认证authentication,系统认为用户是否登录。spring security的缺点是。OAuth 2.0 整合。

2024-05-04 21:41:43 325

原创 36.Docker-Dockerfile自定义镜像

其他命令参考网址:https://docs.docker.com/engine/reference/builder。是一个文本文件,其中包含一个个指令Instruction,指令说明要执行什么操作。每一个指令会形成一层Layer。:在BaseImage基础上添加依赖、安装程序、完成整个应用的安装和配置。镜像是将应用程序及其需要的系统函数库、环境、配置、依赖打包而成。基于ubuntu镜像构建一个新镜像,运行一个java项目。镜像是分层机构,每一层都是一个layer。:入口,是镜像中应用启动的命令。

2024-05-03 15:01:20 665 2

原创 35.Docker-数据卷,目录挂载

在容器内修改文件是不推荐的。1.修改不方便,比如vi命令都无法使用。2.容器内修改,没有日志记录的。那应该如何修改容器中的文件呢?

2024-05-03 00:40:02 909 2

原创 34.Docker基本操作

镜像名称分为两部分组成:[repository]:[tag],tag就是镜像的版本。-it 给当前进入容器创建一个标准的输入、输出终端,允许我们与容器交互。bash 进入容器后执行的命令,bash是一个linux终端交互命令。进入容器后发现vi命令无法使用,因为容器是一个阉割版的linux。进入nginx容器,修改html文件内容,添加“卷土重来”。docker exec 进入容器内部执行一个命令。命令查看所有与nginx相关的容器命令。命令查看所有启动的容器命令。redis持久化方式AOF。

2024-05-02 22:17:17 1242 2

原创 33.Docker安装

Docker由CE和EE两个版本,CE是社区版免费,EE企业版收费。Docker CE支持64位版本centos7,内核版本不低于3.10,Centos7满足最低内核要求,所以在centos7安装docker。

2024-05-02 19:11:43 510

原创 32.Docker认识

Docker是一个快速交付应用,运行应用的技术。1.可以将程序、依赖、运行环境一起打包为一个镜像,可以迁移到任意Linux操作系统。2.运行时利用沙箱机制行程隔离容器,各个应用互不干扰。3.启动、移除都可以通过一行命令完成,方便快捷。

2024-05-02 16:55:53 904

原创 3.CQL使用-创建、查询、返回

Neo4j的Cypher语言为处理图形数据而构建的。CQL代表Cypher查询语言。CQL语句使用文档地址。:在neo4j的CQL语句输入框里,shift + enter换行,直接enter键会执行CQL语句。

2024-04-29 23:07:17 286

原创 2.Neo4j的搭建启动

Graph Database 图数据库。

2024-04-28 22:35:20 901

原创 1.Neo4j图数据库介绍

1.社交、电商、金融、零售、物联网行业,现实社会组织起了一张庞大复杂的关系网。2.传统数据库很难处理关系运算。3.需要一种支持海量复杂数据关系运算的数据库。是以图数据结构存储和查询数据,是一种NoSQL数据库,存储更多的。

2024-04-28 22:01:02 1094 1

原创 31.Gateway网关-跨域问题

1.域名不同:www.baidu.com和www.taobao.com,www.taobao.org2.域名相同,端口不同。localhost:8080和localhost:8081。

2024-04-27 23:03:12 420

原创 30.Gateway网关过滤器链执行顺序

GatewayFilterAdapter中有一个GlobalFilter, 适配器模式,如上图所示,所以可以看做GlobalFilter也是属于GatewayFilter的。4.如果三种类型的过滤器的order值一样的时候的执行顺序是:defaultFilter-> 路由过滤器 -> GlobalFilter。1.每个过滤器都必须指定一个int类型的order值,order值越小,优先级越高,执行顺序越靠前。3.路由过滤器和defaultFilter的order由spring指定,默认是。

2024-04-27 22:42:07 189

原创 29.Gateway网关的全局过滤器GlobalFilter

Order(-1) //设置优先级,数字越小优先级越高@Component@Override//1.获取请求对象//2.获取请求参数//3.获取参数中的authorization//4.判断参数值是否为admin//5.是放行}else {//6.否拦截,设置状态码为未登录,拦截请求。

2024-04-27 21:59:38 259

原创 28.Gateway-网关过滤器

GatewayFilter是网关中提供的一种过滤器,可以多进入网关的请求和微服务返回的响应做处理。default-filters针对所有路由的默认过滤器。spring中提供了31种不同的路由过滤器工厂。@RequestHeader获取请求头中的数据。filters针对部分路由的过滤器。

2024-04-27 17:10:11 634

原创 27.统一网关Gateway-路由断言工厂

org.springframework.cloud.gateway.handler.predicate.PathRoutePredicateFactory类来处理。在配置文件中写的断言规则只是字符串,这些字符串会被Predicate Factory读取并处理,转变为路由判断的条件。例如:Path = /user/** 是按照路劲匹配,这个规则是由。多个predicates之间表示同时满足。

2024-04-27 16:46:18 567

原创 26.统一网关Gateway

1.。2.。用户请求被分配到哪一个微服务。一个微服务可以有多个实例,所以使用负载均衡。3.。springcloud网关实现有两种:gateway, zuulzuul是基于servlet实现的,属于阻塞式编程。springCloudGateway是基于Spring5中提供的WebFlux,属于响应式编程,具有更好的性能。

2024-04-27 16:33:02 540 1

原创 25.Feign的最佳用法

feign-client的module中的UserClient类的bean实例找不到。而消费者order-servcie的 module下的启动类上的@EnableFeignClients注解没有指定包默认是com.xkj.org,所以找不到。将feignClient抽取为独立模块,并把接口有关的entity,默认feign的配置都放到这个模块中,提供给所有的消费者。2.将order-service中编写的UserCllient、User都移动到feign-client中。

2024-04-27 15:35:01 121

原创 24.Feign性能优化

2.日志级别,最好用BASIC或NONE,因为日志的打印会消耗性能的。URLConnection:默认实现,不支持连接池,性能不太好。Apache HttpClient: 支持连接池。替代默认的URLConnection。OKHttp: 支持连接池。feign的默认实现。

2024-04-27 11:30:16 268

原创 23.Feign自定义日志配置

修改日志级别。四种不同的级别:1.没有日志,。2.记录http请求什么时候发的,什么时候结束的,耗时等基本信息。3.除了记录BASIC的内容,还有请求头和响应头。4.除了记录BASIC,HEADERS的内容,还有请求体和响应体的信息都记录下来。

2024-04-27 11:07:39 229

原创 22.Feign远程调用

存在的问题:1.代码可读性差,编码体验不统一。2.复杂参数URL难以维护。是一个声明式的http客户端,作用是优雅的实现http请求的发送,解决RestTemplate中的问题。

2024-04-27 10:32:05 347

原创 21.Nacos集群搭建

模拟Nacos三个节点,同一个ip,启动三个不同的端口:节点 nacos1, 端口:8845节点 nacos2, 端口:8846节点 nacos3, 端口:8847。

2024-04-26 22:33:30 478

原创 20.Nacos配置管理-多环境配置共享

表示即可读取order-service-dev.yaml文件中的配置,也可以读到order-service.yaml文件中的配置。nacos (dev,test,prod)环境配置 > nacos共享配置 > 本地配置(代码中的application.yml)结论:order-service.yaml共享配置文件是指 与 不同环境dev,prod,test下的共享。order-servcie.yaml 多环境共享配置可以写入这个文件。服务名-profile.yaml > 服务名.yaml > 本地配置。

2024-04-26 21:20:42 285

原创 19.Nacos配置管理-热更新

04-26 20:06:21:028 INFO 24440 --- [nio-8080-exec-5] com.xkj.org.controller.OrderController : dateformat=yyyy年MM月dd日 HH:mm:ss。方式一:在@Value注入的变量所在类上添加注解。

2024-04-26 20:20:20 345

原创 18.Nacos配置管理-微服务读取Nacos中的配置

1.实现配置更改热更新,而不是改动了配置文件还要去重启服务才能生效。2.对多个微服务的配置文件统一集中管理。而不是需要对每个微服务逐一去修改配置文件,特别是公共通用的配置。中的配置发生改变后,回去立马通知各个微服务完成对最新配置的读取,并完成热更新。

2024-04-25 23:08:12 630

原创 17.Nacos与Eureka区别

非临时实例,nacos会主动询问服务提供者是否还活着。如果不正常了nacos不会剔除临时实例,会等着服务恢复正常。4.Nacos集群默认采用AP的方式,当集群中存在非临时实例时,采用CP模式。AP高可用,CP强调可靠性和一致性。nacos中服务的消费者除了从nacos注册中心定时拉取服务列表,nacos注册中心还会主动推送变更的消息。临时实例跟eureka一样,会向注册中心报告心跳监测自己是否还活着。如果不正常了nacos会剔除临时实例。2.临时实例心跳不正常会被剔除,非临时实例则不会被剔除。

2024-04-23 22:42:17 513

原创 16.Nacos环境隔离

如果微服务实例在不同的namespace下,相互之间的调用将无法访问。不同namespace下的服务不可见。Namespace->Group->Service/Data->集群->实例。nacos控制台新增一个开发环境的命名空间:dev, 会产生命名空间的id。环境隔离namespace。

2024-04-23 22:09:43 501

原创 15.Nacos服务分级存储模型

user-service有两个实例,分别的集群名称是chengdu,chongqing。服务调用尽可能的选择本地集群的服务,跨集群调用延迟较高。order-service的集群名称为 chengdu。本地集群不可访问的情况下,再去访问其他集群。

2024-04-22 22:37:27 160

原创 14.用Nacos的服务注册与发现替换Eureka

将eureka-server从父pom中移除,无需启动eureka-server,而是使用nacos启动server来替代了。order-service、user-servcie服务的pom文件修改:nacos客户端依赖。修改每个微服务的配置文件application.yml。

2024-04-22 21:43:08 220

原创 13.Nacos简介,下载,安装,启动-windows

Nacos是阿里巴巴的产品,现在是SpringCloud的一个组件。windows下载nacos-server-1.4.1.zip文件。nacos是基于java语言实现的,默认端口是。启动命令:standalone表示单节点启动。初始化的用户名和密码:nacos/nacos。相比Eureka功能更加丰富,

2024-04-22 20:40:43 260 1

原创 12.Ribbon饥饿加载

Ribbon默认是懒加载的,第一次使用Ribbon访问的时候才会去实例化对象,所以第一次访问比较耗时。clients: user-service #对user-service这个服务饥饿加载。- user-service #对user-service这个服务饥饿加载。enabled: true # 开启饥饿加载。enabled: true # 开启饥饿加载。

2024-04-21 22:23:33 319

原创 11.Ribbon负载均衡策略及修改

ZoneAvoidanceRule 默认使用的规则。

2024-04-21 22:14:53 141

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除