- 博客(22)
- 资源 (9)
- 收藏
- 关注
原创 Linux常用命令(总篇)
跟Windows操作系统一样, Linux操作系统也提供了图形界面,但在管理服务器的时候,大多数工程师还是习惯用命令行,因为命令行更加高效,便捷。因此,熟悉Linux基本命令,是一个后端工程师的基本功。很多Linux初学者认为,Linux命令实在太多了,Linux命令入门很吃力。有的Linux用户,用到命令的时候就去搜索引擎搜索一下。当然,这样也没有问题,但是效率太低了,如果真的碰到线上故障,你是没有时间去用google搜索一下的, 不如系统地把常用的Linux命令学到扎实,这样,不管服务器碰到什么问题
2022-03-09 12:54:46
995
原创 Spring Cloud从入门到精通(七):消息总线
在上一篇中,当一个配置中心的客户端启动之后,它所引用的值就无法改变了,但是Spring Cloud 提供了一种手段去解决了这个问题——Spring Cloud Bus。一、Spring Cloud Bus先贴出官方文档对消息总线的介绍Spring Cloud Bus links the nodes of a distributed system with a lightweight ...
2020-01-18 23:38:42
157
原创 Spring Cloud从入门到精通(六):配置中心
在使用Spring Boot的时候,我们往往会在application.properties配置文件中写一些值,供应用使用,这样做的好处是可以在代码中引用这些值,当这些值需要作出修改的时候,可以直接修改配置文件就重启生效了(如果你部署的是war格式)。但是在Spring Cloud这种大量微服务的架构中,这么做很容易出错,增加了运维的成本。本篇要介绍的配置中心就是要把所有微服务需要使用的配置值...
2020-01-14 22:02:44
274
原创 Spring Cloud从入门到精通(五):服务网关Zuul
在前面的篇章都是一个服务消费者去调用一个服务提供者,但事实上我们的系统基本不会那么简单,如果真的是那么简单的业务架构我们也没必要用Spring Cloud,直接部署一个Spring Boot应用就够了。所以当我们的服务消费者有很多个,比如说在一个电商系统里,会员中心是一个微服务,商品详情又是一个微服务,订单又是一个微服务,支付又是一个等等,在这么多的微服务中,每个系统都需要自己的url,这种情况我...
2020-01-12 22:54:34
162
原创 Spring Cloud从入门到精通(四):断路器Hystrix
上一篇介绍了负载均衡的配置方法,做负载均衡是为了保证高可用性,但是有时候服务提供者挂掉了,比如服务A调用了服务B,服务B又调用了服务C,然后有一天服务C的所有节点都挂掉了,这时服务B就会因为C异常而在不停地等待,服务A又会因为服务B没响应在不断地等待,结果请求来得越来越多,使得整个系统雪崩式地出现异常。为了防止这种情况的出现,我们需要给服务做一些保护的措施,当服务B调用服务C在一定时间内出现同...
2020-01-08 22:59:17
176
原创 Spring Cloud从入门到精通(三):服务消费与负载均衡
上一篇介绍了服务提供者,有了注册中心和服务提供者,我们就可以进行服务消费了。Spring Cloud可以通过RestTemplate+Ribbon和Feign这两种方式消费服务。我们仍然在上一篇的项目中添加功能,btw,源码是分章节的,而且后一份代码其实包含了前一份代码,也就是chapter2包含了chapter1的代码,每个chapter的源码其实都是完整可以独立运行的。一、启动注册中心...
2020-01-07 23:12:18
131
原创 Spring Cloud从入门到精通(二):服务提供者
上一篇介绍了注册中心,这一篇介绍如何把服务注册到注册中心。一、创建服务提供者我们依然使用上一篇的项目,在其中创建一个spring boot模块,填好必要的信息,依赖需要选择Spring Web和Eureka Discovery Client,创建完成后主要的依赖如下:<dependencies> <dependency> <gro...
2020-01-06 22:36:24
155
原创 Redis常见命令(字符串类型set命令的几个变体)
上一讲是Redis的set命令的用法,这一讲将会讲一下set命令的几个变体。这些变体命令都包括什么呢?基本就是一下三个命令SETNX, SETEX, PSETEX那么一下三个命令有什么用呢?看名字也大概可以知道,基本就是把set命令都一些可选参数整合进来。下面,我们一个一个来看一下。1. SETEX 这个命令等于把set命令的EX参数整合进来,可以用来设置一个有超时参数的key...
2020-01-05 12:30:26
702
原创 Redis常见命令(字符串类型set命令)
上一篇文章《Redis单点部署》讲了怎样把一个单点的Redis部署起来。这一讲,以Redis5.0为例,讨论一下最常见的Redis命令。1. 怎样确定Redis已经正常启动?我们可以用ping命令,如果返回pong,表明Redis已经正常启动了。2.字符串命令2.1 Redis Set命令,设置一个键值基本语法如下:SETkeyvalue[EX seconds...
2020-01-05 11:27:02
1278
原创 Redis单点部署
环境:CentOs7步骤如下:1. 建目录mkdir -p /data/soft_source2.进入目录cdmkdir -p /data/soft_source3.下载redis源码wget http://download.redis.io/releases/redis-5.0.7.tar.gz4.解压tar xzvf redis-5.0.7.tar....
2020-01-05 00:05:37
339
原创 Spring Cloud从入门到精通(一):服务注册中心
Spring Cloud系列(一):服务注册中心一、Spring Cloud简介Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智能路由,微代理,控制总线)。分布式系统的协调导致了样板模式, 使用Spring Cloud开发人员可以快速地支持实现这些模式的服务和应用程序。他们将在任何分布式环境中运行良好,包括开发人员自己的笔...
2020-01-02 22:44:12
163
原创 反转单链表
思路:把链表遍历,遍历的时候,取当前节点的前一个节点和后一个节点作为临时的中转站,就可以把链表翻过来接。有空明天再说。public class LinkedList { public static ListNode reverseLikedList(ListNode head){ if(head == null)return head; List...
2020-01-01 22:40:03
98
原创 JNI简明教程
众所周知,PHP是世界上最好的语言,java排第二,因为PHP无所不能。但是在某些场景下java还要调用本地方法来提高执行的效率,故java只能排第二。java提供了jni(Java Native Interface)来实现在java中调用本地方法。本地方法在java中用native关键字标识,它是一种和机器有关的方法,一般用C或C++实现,而本地方法不是跨平台的,不同的平台需要重新编译。...
2020-01-01 20:06:38
734
原创 [链表_21]合并两个有序链表
问题:将两个有序链表合并为一个新的有序链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。示例: 输入:1->2->4, 1->3->4 输出:1->1->2->3->4->4来源:力扣(LeetCode)解题思路: 方法还是直观的,如果觉得链表抽...
2019-12-30 22:58:22
122
原创 树专题(二叉搜索树)
工作这么多年了,突然想把数据结构和算法整理一下,但是随便网上一搜索,要么是你抄我,我抄你的,要么是就是写了个算法就挂个二维码要收费。 于是,我觉得,干脆我就整理出来吧。也许,将来有小朋友要突击面试的时候会用得着,也算做件好事吧。 顺便说说,由于工作以来,基本都是用Java,所以下面给出来的都是Java,如果其中涉及到Java的一些语言特性,比如下面就涉及到泛型 ,不是...
2019-09-19 23:33:40
151
2
原创 用Netty实现一个无限扩展的IM服务(第4回装个Reids单节点)
前面的3回都是吹牛逼的,到这里才刚刚开始玩真的。 是的,这个架构,说大不大,说小不小。架构都已经画好了,先不说代码怎么实现,组件得先搭起来,否则怎么玩? 这一次,我们就先聊一下怎么搭建一个Redis集群。 由于机器数量不多,为了方便,这个Redis就全部搭建在同一台机器上面,如果将来真的部署在生产环境了,当然不能这样玩,肯定要3个节点放到3台机器上,否则这个集群就没有意义...
2018-06-21 18:56:54
845
原创 用Netty实现一个无限扩展的IM服务(第3回讲讲准备的软硬件)
上一回的文章描述了IM的设计思路,整个思路非常的简单。 这一回,为了实现这个东西,我们去聊一聊需要准备些什么? 人:一个,男女不限,年龄不限,不要求五官端正,但需要有一定的逻辑思维能力,玩过一下Linux,写过一阵子Java。知道Eclipse是什么,当然,如果知道鄙视Eclipse那就更佳了,如果甚至知道什么编程的道和术之类的,那就简直上乘了。 硬件:3台CentOS做...
2018-06-21 17:36:31
919
原创 用Netty实现一个无限扩展的IM服务(第2回讲讲设计思路)
思路其实也很简单了。要想无限扩展,跑Netty的服务器肯定是分布式的,机器数量会随着业务增长而增长,但是,谁来管理这些Netty的服务呢? 于是,第1个问题就产生了,通俗的问一句就是,万一Netty的服务挂了,谁管? 你可以说,我写个shell脚本来试试,如果项目小,只有几台机器,那也不妨这么做,但是,假定机器上到100左右,服务太多了,还玩shell脚本,不管是部署还...
2018-06-21 15:00:29
2785
1
原创 用Netty实现一个无限扩展的IM服务(第1回先吹个牛逼)
很多年前,我不懂技术,我再论坛上问,怎么用代码做一个东西玩玩,一大堆牛逼人士告诉我,先学算法,先学数据结构,先学计算机原理......甚至有的说,先学点汇编。 同样是受九年义务教育,真的不知道为什么这些人这么优秀! 今天,我想用Netty做个IM服务器,这个IM服务并没有那么优秀,所以就不需要提前了解什么数据结构,不需要提前学汇编,但要写一点儿代码(如果真的需要什么,在做的过程...
2018-06-21 11:31:11
907
原创 Spark实践3(Spark的简单操作)
前面经过部署之后,Spark就可以用了。 怎么用呢? 可以有两个办法: 1.直接在shell中调用Spark提供的API方法,去做一些运算。 2.通过Scala,Java或者Python等语言的编程去调用Spark提供的api,去实现相关的功能,如流运算,图运算,SQL运算等。 由于实践应该是一个由浅入深的阶段,由于,我们可以先用shell来简单调用一下...
2018-02-28 13:56:44
4156
原创 Spark实践2(Spark单点的安装)
有个笑话是这样的, 程序员小明说,我的女朋友,我就得让她给我买好菜,烧好饭,洗好衣服,叠好被子...... 然后运营的妹子轻轻得问了一句,那是不是首先得有一个女朋友?#¥$^%@..... 没错,同样的道理,要Spark实践,我们首先得有个Spark,哪怕他是个单点的。参考官网:http://spark.apache.org/docs/latest/index.htm...
2018-02-28 11:15:21
1211
原创 Spark实践1(Spark简介)
Spark简介: 简而言之,Spark就是一个准实时的分布式计算系统。 准实时怎么理解,这里不展开了,就简单理解为已经接近实时。 分布式这个东西,说得玄乎其玄,一言蔽之,就是把一个任务,分解到多个节点(这里我们简单假定一个节点就是一台机器),让每台机器运算好了之后,然后合并结果,就是那么简单。跟包工头领了搬砖活,然后分给下面的工人做,工人完成自己的任务...
2018-02-28 10:25:57
4164
V4L编程,里面是各接口函数
2010-03-22
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人