SpringBoot日记——分布式篇】的更多相关文章

思考:什么是分布式?什么是微服务? 一些概念:RPC-远程过程调用,某台机器想要调用另一台机器所需要的一种服务,及分布式的服务框架,比如dubbo或者SpringCloud. 铺天盖地的分布式互联网系统,使用较多的是zookeeper+dubbo组合,而Springboot推荐使用全栈Spring,就是Springboot+SpringCloud. 举例说明一下基本原理:A想要获得数据B,但是有10台机器都可能存放了数据B,那么我要去哪台取数据B呢?A和B中间就有了一个管理站,这个管理站类似一个…
听起来高大上的国际化,起始就是在利用浏览器语言,或者页面中的中英文切换,将页面的文字在其他语言和中文进行切换,比如: 我们想让这个功能实现,点击中文,页面就是中文的,点击英文就是英文的. 国际化配置 那么我们来看,SpringBoot默认是按照你浏览器的语言来切换中英文的,配置文件呢,我们可以在resources中这样写: 1. 新建一个名叫“i18n”的包,我们用来存放国际化配置,然后在这个包下,我们再创建几个properties的配置文件,用来配置语言: 如图方式,我们创建3个文件,分别是无…
搞定了SpringBoot的一些基础核心的东西,我们需要实践一个项目来确认自己学习的东西能被应用,最初,我们会选择自己写一个登陆页面,这也是每个网站几乎都有的门面. 在写之前,还有一些知识点需要记录——URL定向. 比如我们访问“/”和访问“/index.html”这样的路径的时候,希望他们都可以指向同一个页面,但是我们又不能写一堆Controller来实现,那样以后维护起来也十分繁琐,所以这里引入了一个Adapter的方法. 具体如何实现的呢,先来看代码,然后做讲解: /** * 由于Spri…
    前言:终于到分布式篇,前面把JAVA的一些核心知识复习了一遍,也是一个JAVA程序员最基本要掌握的知识点,接下来分布式的知识点算是互联网行业的JAVA程序员必备的技能:     概念:ZooKeeper是一个分布式的,开放源码的分布式应用程序协调服务,是谷歌的Chubby一个开源的实现,是Hadoop和Hbase的重要组件.它是一个为分布式应用提供一致性服务的软件,提供的功能包括:配置维护.域名服务.分布式同步.组服务等     关键词:分布式,一致性服务 讲得通俗一点,zookeepe…
作者:追梦1819 原文:https://www.cnblogs.com/yanfei1819/p/10876339.html 版权声明:本文为博主原创文章,转载请附上博文链接! 引言   在以往的项目中,对于dao层的常规 CRUD 操作,我们通常使用 JPA.JDBC 时会做一个所谓的 BaseDaoMapper 以减少代码量.而通用 Mapper 刚好是这一环节的替代品,代码更简单,更优雅,也是 Mybatis 用的很广泛的一个插件.   不过需要注意的一点是,通用 Mapper 支持单表…
Redis分布式篇 1 为什么 需要 Redis 集群 1.1 为什么需要集群? 1.1.1 性能 ​ Redis 本身的 QPS 已经很高了,但是如果在一些并发量非常高的情况下,性能还是会受到影响.这个时候我们希望有更多的 Redis 服务来完成工作. 1.1.2 扩展 ​ 第二个是出于存储的考虑.因为 Redis 所有的数据都放在内存中,如果数据量大,很容易受到硬件的限制.升级硬件收效和成本比太低,所以我们需要有一种横向扩展的方法 1.1.3 可用性 ​ 第三个是可用性和安全的问题.如果只有…
作者:追梦1819 原文:https://www.cnblogs.com/yanfei1819/p/10881666.html 版权声明:本文为博主原创文章,转载请附上博文链接! 引言   一看这个名字,就能看出与 MyBatis 有关.没错,它就是一款 MyBatis 的增强工具.   下面我们先介绍这款工具,然后再介绍在 SpringBoot 中的使用.这样符合博主的习惯:在学习一个新的技术或者新的框架之前,一定会思考这个技术或者框架为什么会出现?解决了什么问题?有没有别的取代方案? Myb…
Springboot快速入门篇,图文并茂 文章已托管到GitHub,大家可以去GitHub查看阅读,欢迎老板们前来Star!搜索关注微信公众号 [码出Offer] 领取各种学习资料! image-20200809125922162 一.Springboot概述 1.1 Springboot简介 SpringBoot是由Pivotal团队研发的,SpringBoot并不是一门新技术,只是将之前常用的Spring,SpringMVC,data-jpa等常用的框架封装到了一起,帮助你隐藏这些框架的整合…
Springboot实现分布式锁(Spring Integration+Redis) 一.在项目的pom.xml中添加相关依赖 1)Spring Integration依赖 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-integration</artifactId> </dependency> 2)Sp…
SpringCloud是一个分布式的整体解决方案.Spring Cloud为开发者提供了在分布式系统(配置管理,服务发现,熔断,路由,微代理,控制总线,一次性token,全局锁,leader选举.分布式session,集群状态)中快速构建的工具,使用SpringCloud的开发者可以快速的启动服务或构建应用.同时能够快速和云平台资源进行对接.本篇只讲述SpringBoot与SpringCloud的整合以及简单使用,若要详细学习SpringCloud请参考其他文章或官方文档. 一.Spring C…
在我们访问页面的时候经常会遇到各种问题,比如404,400,500,502等等,可返回的错误页对用户来讲,并不太亲民,所以要定制一下自己的错误页. 我们先访问一个错误页面,看下效果:(虽然给我们提供了错误时间.类型.状态码.错误信息,但是好丑,而且用户也不知道这是什么意思) 如果定制呢?我们下边介绍两个定制化的地方. 定制错误页面 1. 对于SpringBoot来说,它默认会帮我们查找对应的错误页面,也就是说,如果在模板引擎里没有找到匹配的页面,他就对应状态码来展示错误页,例如: 访问页面是40…
增删改查,我们这篇文章来介绍一下如何进行删除表单的操作,也就是我们页面中的删除按钮的功能. 下边写的可能看起来有点乱,请仔细的一步一步完成. 删除功能第一步,按钮功能实现 1. html的改变 来看,我们最初,删除按钮是一个button的标签 <button class="btn btn-sm btn-danger">删除</button> 想要让它实现删除功能,首先要确定的是,删除的是一个表单记录,就是这个用户的表单信息.那么,我们来添加一个表单的删除功能,而…
我们常用的功能,除了post和get,还有put和delete,这篇文章就介绍一下这个put的基本用法. 页面跳转和回显 1. 首先,我们之前的页面已经将添加和修改的按钮都做好了,那么如何实现这些按钮的功能呢,来看代码(先是list.html的跳转): 为了我们的添加和编辑跳转正确,肯定要先把跳转的请求发送正确,这里注意一下编辑的hred,我采用了拼接的方式,因为我们修改页之前也说过,请求的路径是/emp/{id}这种格式的,需要针对员工id来进行编辑. <a class="btn btn…
场景如下: 我们点击主页,主页那个按钮就高亮: 我们点击员工,员工那个按钮就高亮: 高亮的处理 直接来看代码如何编写: 1.先看一下官方文档如何编写关于参数配置的,等下我们来解释为何这么写: 所以,我们将之前引入dashboard.html页的sidebar,添加一个属性:(表示该sidebar中有个属性是activeUri,值是main.html) <div th:replace="commons/bar::#sidebar(activeUri='main.html')">…
我们做好了登录页,那设计一个场景吧,比如我们登录后跳转到公司主页,想从公司主页再跳转到员工列表页: 这样的场景我们该如何实现,首先要知道一些基础知识,就是SpringBoot的一些关于请求的架构知识: 功能 请求URI 请求方式 查询所有员工 emps GET 查询某个员工 emp/{id} GET 跳转到添加页 emp GET 添加员工 emp POST 跳转到修改页 emp GET 修改员工信息 emp{id} PUT 删除员工 emp{id} DELETE 其实,这些请求在我们做登录页的时…
之前的文章我们把登录页写了出来,但是想要让登录现实他的基本功能,要如何做呢?本篇文章就来帮你实现第一步,让登录页对账号密码做校验,并且完成登录跳转. LoginController 1. 要实现登录,我们需要先编写一个登录的controller类:(每一步的注释应该比较详细了~) @Controller public class LoginController { // 发送post请求,代替了RequestMapping(value="/user/login", method=&qu…
为了让SpringBoot保持对SpringMVC的全面支持和扩展,而且还要维持SpringBoot不写xml配置的优势,我们需要添加一些简单的配置类即可实现: 通常我们使用的最多的注解是: @Bean @Component 配置后的类就是我们要写在容器中的一些配置:详情后续再说,或者你也可以参考官方文档 关于扩展 这里我们说一下如何做扩展呢,先看一下原先在SpringMvc中我们是如何写的,来看XML(这是一段关于路径映射和拦截器的简单配置,访问hello路径也展示success.html的页…
开发通常我们都会使用模板引擎,比如:JSP.Velocity.Freemarker.Thymeleaf等等很多,那么模板引擎是干嘛用的? 模板引擎,顾名思义,是一款模板,模板中可以动态的写入一些参数,我们将这些参数在代码中传入,以保证数据在页面的动态调用,这就是引擎要做的,页面和数据的动态传输模板. SpringBoot官方为我们推荐的是Thymeleaf,让我们来看看这款引擎哪里出彩: 语法相对更简单,且功能强大: 1.引入Thymeleaf 直接在pom中添加即可 <dependency>…
准备开始实战啦!~~~~ 我们先来看,SpringBoot的web是如何做web开发的呢?通常的步骤如下: 1.创建springboot应用,指定模块: 2.配置部分参数配置: 3.编写业务代码: 为了更好的用好SpringBoot,那么我们需要重点了解,关于它的 自动配置原理. HELLO WORLD! 关于原理,自己去研究,这里不做深究,毕竟小白也看不懂,一两句也说不清的…… @Controller public class HelloController { @GetMapping("/h…
在项目的开发中,日志是必不可少的一个记录事件的组件,所以也会相应的在项目中实现和构建我们所需要的日志框架. 而市面上常见的日志框架有很多,比如:JCL.SLF4J.Jboss-logging.jUL.log4j.log4j2.logback等等,我们该如何选择呢? 通常情况下,日志是由一个抽象层+实现层的组合来搭建的. 日志-抽象层 日志-实现层 JCL.SLF4J.jboss-logging jul.log4j.log4j2.logback 而SpringBoot机智的选择了SLF4J+Log…
通常我们访问数据的情况如下图,数据存缓存就取缓存,不存缓存就取数据库,这样可以提升效率,不用一直读取数据库的信息: 开始记录: 关于SpringBoot缓存的应用 1. 首先在pom.xml文件中添加如下: <dependency> <!-- cache缓存 --> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-cache</artif…
背景吐槽:想要让自己进阶一下,一定要有个可以拿出来秀的东西,所以要尝试写一个属于自己的网站或者平台.因此,我大概的看了一下springboot+Mybatis-plus+... 框架介绍 通常 SSM(Spring+SpringMVC+MyBatis)框架集由Spring.SpringMVC.MyBatis三个开源框架整合而成,常作为数据源较简单的web项目的框架. Spring  是一个轻量级的控制反转(IoC)和面向切面(AOP)的容器框架.(通俗解释:底层框架) SpringMVC 分离了…
在分布式系统中, 国内常用zookeeper+dubbo组合,而Spring Boot推荐使用全栈的Spring,Spring Boot,Spring Cloud. 分布式系统: 一.Zookeeper和Dubbo概览 1.1 ZooKeeper ZooKeeper是一个分布式的,开放源码的分布式应用程序协调服务.它是一个为分布式应用提供一致性服务的软件,提供的功能包括:配置维护.域名服务.分布式同步.组服务等. 1.2 Dubbo Dubbo是Alibaba开源的分布式服务框架,它最大的特点是…
插入一个小篇章,有人在编写代码的时候,要么控制台乱码,要么页面乱码等等, 我这里有个配置,可以解决各种乱码问题,直接来看. # ==================== 编码配置 ==================== spring.banner.charset=UTF-8 server.tomcat.uri-encoding=UTF-8 spring.http.encoding.charset=UTF-8 spring.http.encoding.enabled=true spring.ht…
看到标题的那一串英文,对于新手来说一定比较陌生,而说起检索,应该都知道吧. 这个ElasticSearch目前我们的首选,他主要有可以提供快速的存储.搜索.分析海量数据的作用.他是一个分布式搜索服务,提供了Restful API,底层基于Lucene(一个开源的搜索引擎工具包),使用shard的分片方式保证数据安全,且有自动resharding功能.我们知道的github.维基百科等这类网站,都是采用这个服务的. elasticsearch的安装 这里在使用前还要说明一点,很重要的:elasti…
本篇内容主要讲解的是redis分布式锁,这个在各大厂面试几乎都是必备的,下面结合模拟抢单的场景来使用她:本篇不涉及到的redis环境搭建,快速搭建个人测试环境,这里建议使用docker:本篇内容节点如下: jedis的nx生成锁 如何删除锁 模拟抢单动作(10w个人开抢) jedis的nx生成锁 对于java中想操作redis,好的方式是使用jedis,首先pom中引入依赖: <dependency> <groupId>redis.clients</groupId> &…
前言 分布式应用 在分布式系统中,国内常用 Zookeeper + Dubbo 组合,而 SpringBoot 推荐使用 Spring 提供的分布式一站式解决方案 Spring + SpringBoot + SpringCloud. 图 1:分布式架构图 Zookeeper和Dubbo Zookeeper 是一个分布式的,开放源码的分布式应用程序协调服务.它是一个为分布式应用提供一致性服务的软件,提供的功能包括:配置维护.域名维护.分布式同步.组服务等. Dubbo 是 Alibaba 开源的分…
基于第一篇文章搭建好环境以后,我们这篇文章继续介绍如何在springboot中使用RabbitMQ. 1).单播:添加好pom文件和自定义配置后,来看: @Autowired RabbitTemplate rabbitTemplate; @Test public void contextLoads() { // 对象被默认JAVA序列化发送,参数:Exchange,routingKey,消息 rabbitTemplate.convertAndSend("exchange.direct"…
上一篇文章,简单记录了一下缓存的使用方法,这篇文章将把我们熟悉的redis整合进来. 那么如何去整合呢?首先需要下载和安装,为了使用方便,也可以做环境变量的配置. 下载和安装的方法,之前有介绍,在docker中的使用,这里不做相关介绍,有想在windows环境下使用的,自己搜一下如何windows安装使用redis吧~(看这里也可以) 正题: SpringBoot对应(自带)RedisClient是不同的 SpringBoot1.5.x版本 -> jedis  SpringBoot2.x版本 -…
SpringBoot核心技术的东西基本上都有介绍过了,接下来,进阶点~来说说缓存吧~ 缓存这个词不少同学应该不会很陌生.而我们这里主要使用的就是Redis. 客户端第一次请求的时候是从库里拿出我们需要的数据,但如果每次查询都从库里拿,就会很耗时耗能.那么使用缓存以后,我们只需要第一次从库里拿完存到缓存中,只要不清除缓存,我们以后的请求都直接在缓存中拿数据,就会快很多很多. 先给出几个基础的方法,包括Mapper/Bean/Controller,不然后边说的东西估计有些人会很懵. package…