3 溪源的奇思妙想

尚未进行身份认证

我要认证

微信公众号:溪源的奇思妙想 溪源,一个在IT技术圈和经济学之间的求知者——既对人工智能、物联网等前沿技术兴致勃勃,又对机会成本、边际收益等经济学理论流连忘返。人生是一场孤独的旅行,只是我还是侥幸期待有同路人,我希望认识同样热爱技术、迷恋经济学的你。

等级
TA的排名 2k+

SpringBoot使用Netty实现远程调用

SpringBoot使用Netty实现远程调用前言众所周知我们在进行网络连接的时候,建立套接字连接是一个非常消耗性能的事情,特别是在分布式的情况下,用线程池去保持多个客户端连接,是一种非常消耗线程的行为。那么我们该通过什么技术去解决上述的问题呢,那么就不得不提一个网络连接的利器——Netty.正文NettyNetty是一个NIO客户端服务器框架:它可快速轻松地开发网络应用程序,例如协议服务器和客户端。它极大地简化和简化了网络编程,例如TCP和UDP套接字服务器。NIO是一种非阻塞IO ,

2020-10-24 00:12:29

缓存和数据库一致性问题

缓存和数据库一致性问题前言在我们生产的过程中,我们会发现我们80%的业务是由20%的数据来驱动的,这20%的数据往往被我们称为热数据,这种现象也被称为二八定律。这种数据访问不均匀的现象,使得我们可以采用最有效的技术——缓存来提升我们整个系统的性能,但是用到缓存我们不可避免地要考虑一个问题缓存和数据库数据一致性的问题。正文缓存和数据库一致性问题缓存和数据库双写一致性问题强一致性:缓存和数据库数据始终保持一致最终一致性:缓存和数据库数据有一段时间不一致,单不影响查询结果。解决缓存一致性的解决

2020-10-21 16:06:29

微服务+微信小程序实现社区服务

微服务+微信小程序实现社区服务前言我在上大学的时候毕业设计做的是微服务SpringCloud结合微信小程序实现一个提供一些生活服务的微信小程序,它主要可以提供豆瓣电影资讯、热点新闻、天气预报、停车位预约等生活服务,也用到了一些分布式的技术比如消息队列、内存数据库等。正文微服务+微信小程序实现社区服务源码文件的结构springcloidservice:以SpringCloud架构的后台服务项目社区服务:微信小程序的源码comdc.sql : mysql数据库数据脚本这里简单介绍一下sp

2020-10-19 00:13:50

开箱即用的SpringBoot模板

开箱即用的SpringBoot模板前言如果你从事的开发岗位是独立开发一个完整的项目的时候,我们需要前期做很多的开发准备,特别是使用比较多的技术栈的时候,我们前期会投入比较多的组件调试时间,其实这部分工作往往是不涉及业务的,完全可以把常见的技术栈集合在一起做一个开发模板,本篇博客为大家提供一个不涉及业务逻辑的SpringBoot项目模板。开箱即用的Dubbo模板可参考我的博客:开箱即用的Dubbo模板正文开箱即用的SpringBoot模板这里简单介绍一下该项目的技术栈权限管理:SpringSe

2020-10-14 09:20:07

SpringBoot通过自定义注解实现日志打印

SpringBoot通过自定义注解实现日志打印前言在我们日常的开发过程中通过打印详细的日志信息能够帮助我们很好地去发现开发过程中可能出现的Bug,特别是在开发Controller层的接口时,我们一般会打印出Request请求参数和Response响应结果,但是如果这些打印日志的代码相对而言还是比较重复的,那么我们可以通过什么样的方式来简化日志打印的代码呢?SpringBoot 通过自定义注解实现权限检查可参考我的博客:SpringBoot 通过自定义注解实现权限检查正文Spring AOPSpr

2020-10-12 23:36:29

SpringCloud使用Eureka作为服务治理中心

SpringCloud使用Eureka作为服务治理中心前言我们在进行开发分布式架构的系统时,有一个不可或缺的工具那就是服务治理组件,我们可以通过它来实现服务的注册、发布和调用,可以理解为它维护着我们所有服务的花名册。目前主流的服务治理中心有Zookeeper、Eureka、Nacos等,本篇博客这里我想和大家介绍一下服务治理组件—Eureka的原理和使用。Nacos的使用可以参考我的博客:Nacos服务治理中心和配置中心正文EurekaEureka是一项基于REST的服务,主要在AWS云中用于定

2020-10-02 20:40:04

SpringCloud使用Consul作为服务治理中心

SpringCloud使用Consul作为服务治理中心前言我们在进行开发分布式架构的系统时,有一个不可或缺的工具那就是服务治理组件,我们可以通过它来实现服务的注册、发布和调用,可以理解为它维护着我们所有服务的花名册。目前主流的服务治理中心有Zookeeper、Eureka、Nacos等,但是今天这里我想和大家介绍一下另一种服务治理组件—Consul。Nacos的使用可以参考我的博客:Nacos服务治理中心和配置中心正文ConsulConsul是一个Spring Cloud 中集成好的开源的分布式

2020-09-30 00:54:13

使用Jenkins来构建GIT+Maven项目

使用Jenkins来构建GIT+Maven项目前言最近写了一篇博客是关于 使用Jenkins来构建SVN+Maven项目 ,这里使用的的代码版本工具是SVN,但是事实上也有很多公司使用GIT来进行代码管理,那么我们如何使用Jenkins去自动发布GIT+Maven项目呢?正文JenkinsJenkins是一个开源的、可扩展的持续集成、交付、部署的基于web界面的平台。允许持续集成和持续交付项目,无论用的是什么平台,可以处理任何类型的构建或持续集成。通常我们使用Jenkins主要实现以下功能:

2020-09-28 00:53:23

在centos7搭建git代码仓库

在centos7搭建git代码仓库前言在以前的开发自己的个人小程序时我一直使用SVN来作为代码的版本控制系统,但是使用SVN有一个比较明显的弊端就是代码都是以中央仓库的方式进行管理,必须要在联网的情况下才能使用。并且在我们日常的学习开发中是一个螺旋式的开发过程,我们更需要一个更容易实现多版本共存的代码控制系统。Git的使用可参考我的博客:Git 如何将自己本地分支代码上传到远处主分支正文GitGit是一个免费开源的分布式版本控制系统,旨在快速高效地处理从小型到大型项目的所有内容。SVN与GIT

2020-09-26 22:17:37

EasyExcel实现Excel文件的导入导出

EasyExcel实现Excel文件的导入导出前言在我们日常的开发过程中经常会使用Excel文件的形式来批量地上传下载系统数据,我们最常用的工具是Apache poi,但是如果数据到底上百万时,将会造成内存溢出的问题,那么我们怎么去实现百万数据批量导入导出。正文EasyexcelEasyexcel 是阿里巴巴的开源项目,用来优化Excel文件处理过程:poi消耗内存严重:Java解析、生成Excel比较有名的框架有Apache poi、jxl。但他们都存在一个严重的问题就是非常的耗内存,poi

2020-09-25 00:59:42

使用Jenkins来构建SVN+Maven项目

前言在我们开发过程中,由于主流的架构都是采用前后端分离的方式,我们作为后端开发者需要为前段持续地提供运行在容器中最新代码,虽然可以通过在编译器中打完包后在放到容器运行,但是显然这种方式是既不方便的,那么能不能呢使用更加便捷的方式来构建发布程序呢?正文JenkinsJenkins是一个开源的、可扩展的持续集成、交付、部署的基于web界面的平台。允许持续集成和持续交付项目,无论用的是什么平台,可以处理任何类型的构建或持续集成。通常我们使用Jenkins主要实现以下功能:持续集成指的是,频繁地(一天

2020-09-16 21:53:22

开箱即用的Dubbo模版

开箱即用的Dubbo模版前言近期做的项目是一个采用Dubbo架构的微服务项目,由于之前虽然学习过Dubbo架构但是一直没有机会独自搭建过,于是趁着这个机会凭借着自己浅薄的理解自己完整地搭建了一个开箱即用的spring-dubbo-demo。正文开箱即用的Dubbo模版这里简单介绍一下这个项目的的结构spring-dubbo-demospring-dubbo-api:这个模块主要存放对外提供的dubbo接口。spring-dubbo-common:存放着一些常用的工具类、自定义标签、枚举类等

2020-09-14 09:17:36

使用SVS实现签名验证

使用SVS实现签名验证前言最近开发了一个接口由于是给外部其他系统的调用的,所以为了接口安全性,我们需要选择一个符合业务需求的请求机制。根据和合作方的协商,我们决定采用了SVS签名验证的方式来保证接口的安全性。正文数字签名数字签名指的是只有信息的发送者才能产生的别人无法伪造的一段数字串,这段数字串同时也是对信息的发送者发送信息真实性的一个有效证明。它的基本原理是将原文用对称密钥加密传输,而将对称密钥用收方公钥加密发送给对方。收方收到电子信封,用自己的私钥解密信封,取出对称密钥解密得原文。使用sv

2020-09-10 22:56:58

使用Curator来控制ZooKeeper

使用Curator来控制ZooKeeper前言作为一个了解分布式架构的开发者,一定会用到ZooKeeper,它是一个为分布式应用提供一致性服务的软件,提供的功能包括:配置维护、域名服务、分布式同步、组服务等。虽然ZooKeeper功能强大,但是ZooKeeper客户端的调用比较复杂,对我们开发者相对而言还是不够友好的,而Apache Curator 就是为了简化ZooKeeper客户端调用而生,利用它,可以更好的使用ZooKeeper。正文Apache CuratorApache Curator是

2020-09-09 23:43:01

微服务使用knife4j进行在线接口调试

微服务使用knife4j进行在线接口调试前言之前发布了一个博客是关于SpringBoot使用knife4j进行在线接口调试,那是一个单节点下的教程,那么在微服务情况,每一个服务都是一个独立的knife4j的话,显然是不方便的,那么对于微服务的情况下,我们如何使用knife4j呢?SpringBoot使用knife4j可参考我的博客:SpringBoot使用knife4j进行在线接口调试Nacos安装以及其使用可参考我的博客:Nacos服务治理中心和配置中心正文微服务使用knife4j进行在线接口

2020-09-07 12:57:07

Dubbo结合Gateway实现微服务网关

Dubbo结合Gateway实现微服务网关前言最近,我发布了Dubbo Demo项目以及Gateway网关的博客,于是奇思妙想到能不能将两者结合起来呢?首先我们可以在Dubbo的官网中看了开发者文档,它推荐使用的网关只有三种Kong、Dubbo Proxy以及Zuul,而GateWay被认为是Zuul的替代品,所以从理论上是完全可行,所以来吧,展示!Nacos安装以及其使用可参考我的博客:Nacos服务治理中心和配置中心Gateway安装及使用可参考我的博客:微服务网关-Gateway正文网关模

2020-09-07 01:42:18

SpringBoot使用validation-api实现参数校验

SpringBoot使用validation-api实现参数校验前言我们在开发Java项目的时候,经常需要对参数进行一些必填项、格式、长度等进行校验,如果手写代码对参数校验,每个接口会需要很多低级的代码,这样会降低代码的可读性。那么我们能不能使用一种比较优雅的方式来实现,对请求中的参数进行校验呢?knife4j的安装与使用可参考我的博客:SpringBoot使用knife4j进行在线接口调试正文ValidationApi框架就是用来解决参数校验中代码冗余问题,ValidationApi框架提供一些

2020-09-06 04:06:52

SpringBoot使用knife4j进行在线接口调试

前言我们在开发一个Java Web的项目,如果项目整体采用前后端分离的架构的方式,我们会经常使用Swagger来进行接口调试和为前端提供接口文档,但是Swagger并没有实际上那么方便,比如我们在发送Post请求时,参数选填还是非常不友好,那么有没有更好的工具呢?正文knife4jknife4j是为Java MVC框架集成Swagger生成Api文档的增强解决方案,前身是swagger-bootstrap-ui,具有小巧,轻量,并且功能强悍的优点。Knife4j提供两大核心功能:文档说明 和 在线

2020-09-06 01:02:11

Elastic-job实现分布式定时任务

Elastic-job实现分布式定时任务前言最近接了一个新的需求,需要使用到定时任务,由于我们的系统是分布式的,所以Spring自带的定时任务无法满足我们当前系统对定时任务的需要。我们需要一个能够便捷、高可用的分布式定时任务框架。比较了几个主流的分布式框架,我最终pick了当当开源项目ElasticJob。正文Elastic-jobElasticJob是一种分布式调度解决方案,由两个单独的项目ElasticJob-Lite和ElasticJob-Cloud组成。通过灵活的调度,资源管理和作业管理

2020-09-02 20:54:50

Dubbo服务的注册与发现

Dubbo服务的注册与发现前言最近参与的项目是一个基于Dubbo的项目,在开发过程中有些同事对于Dubbo服务的注册与发现机制,似乎不太了解。所以我抽空和他简单聊了聊我对Dubbo机制的了解。正文Java SPISPI即服务提供商接口,它是一种动态加载服务实现者的机制,通过JavaSPI我们可以优雅地根据一个接口来获取该接口的所有实现类。值得注意的是使用的Java SPI需要有以下的前提:1.需要在 classpath 下创建一个目录,该目录命名必须是:META-INF/service2.在

2020-09-01 20:41:08

查看更多

CSDN身份
  • 博客专家
勋章 我的勋章
  • 领英
    领英
    绑定领英第三方账户获取
  • GitHub
    GitHub
    绑定GitHub第三方账户获取
  • 脉脉勋章
    脉脉勋章
    绑定脉脉第三方账户获得
  • 签到王者
    签到王者
    累计签到获取,不积跬步,无以至千里,继续坚持!
  • 新人勋章
    新人勋章
    用户发布第一条blink获赞超过3个即可获得
  • 阅读者勋章Lv3
    阅读者勋章Lv3
    授予在CSDN APP累计阅读博文达到30天的你,是你的坚持与努力,使你超越了昨天的自己。
  • 持之以恒
    持之以恒
    授予每个自然月内发布4篇或4篇以上原创或翻译IT博文的用户。不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!
  • 勤写标兵Lv4
    勤写标兵Lv4
    授予每个自然周发布9篇以上(包括9篇)原创IT博文的用户。本勋章将于次周周三上午根据用户上周的博文发布情况由系统自动颁发。
  • 分享学徒
    分享学徒
    成功上传1个资源即可获取