解决git push代码到github上一直提示输入用户名及密码的问题

我们将github上的工程clone到本地后,修改完代码后想要push到github,但一直会有提示输入用户名及密码.

原因分析

  • 出现这种情况的原因是我们使用了http的方式clone代码到本地,相应的,也是使用http的方式将代码push到服务器。

如图所示,在github系统上克隆代码的地址默认采用的是http的方式,我们一般这样clone代码:

git clone https://github.com/yychuyu/linux-system-programming.git

这就容易导致这个问题的出现。

而如果采用ssh方式的话,是这样clone代码的:

git clone git@github.com:yychuyu/linux-system-programming.git

阅读更多

jenkins

Jenkins 是 Devops 神器,本篇文章介绍如何安装和使用 Jenkins 部署 Spring Boot 项目

Jenkins 搭建、部署分为四个步骤;

  • 第一步,Jenkins 安装
  • 第二步,插件安装和配置
  • 第三步,Push SSH
  • 第四步,部署项目

第一步 ,Jenkins 安装

准备环境:

JDK:1.8
Jenkins:2.83
Centos:7.3
maven 3.5

Jdk 默认已经安装完成

阅读更多

docker命令

docker基本命令

  • docker logs 检查排错。如果启动不起容器,可以试着检查排错

  • docker安装jenkins及其相关问题解决 https://www.cnblogs.com/youcong/p/10182091.html

  • systemctl stop firewalld.service 关闭防火墙

  • docker inspect 容器id 查询容器信息

  • docker stop 容器id 停止容器id

  • docker rm 容器id 删除容器id

  • systemctl restart docker 重启docker容器

  • docker exec -it 容器ID /bin/bash 进入容器

  • docker rm $(sudo docker ps -a -q) 删除所有未运行的容器

  • docker search elasticsearch 搜索镜像文件

  • docker run 创建并启动一个容器,在run后面加上-d参数,则会创建一个守护式容器在后台运行。

  • docker ps -a 查看已经创建的容器

  • docker ps -s 查看已经启动的容器

  • docker start con_name 启动容器名为con_name的容器

  • docker stop con_name 停止容器名为con_name的容器

  • docker rm con_name 删除容器名为con_name的容器

  • docker rename old_name new_name 重命名一个容器

  • docker attach con_name 将终端附着到正在运行的容器名为con_name的容器的终端上面去,前提是创建该容器时指定了相应的sh

  • docker logs –tail=”10” 容器名称 查询容器日志信息

编译安装Keepalived2.0.0

简介

Keepalived是基于vrrp协议的一款高可用软件。Keepailived有一台主服务器和多台备份服务器,在主服务器和备份服务器上面部署相同的服务配置,使用一个虚拟IP地址对外提供服务,当主服务器出现故障时,虚拟IP地址会自动漂移到备份服务器。

VRRP(Virtual Router Redundancy Protocol,虚拟路由器冗余协议),VRRP是为了解决静态路由的高可用。VRRP的基本架构虚拟路由器由多个路由器组成,每个路由器都有各自的IP和共同的VRID(0-255),其中一个VRRP路由器通过竞选成为MASTER,占有VIP,对外提供路由服务,其他成为BACKUP,MASTER以IP组播(组播地址:224.0.0.18)形式发送VRRP协议包,与BACKUP保持心跳连接,若MASTER不可用(或BACKUP接收不到VRRP协议包),则BACKUP通过竞选产生新的MASTER并继续对外提供路由服务,从而实现高可用。

vrrp协议的相关术语

虚拟路由器:Virtual Router
虚拟路由器标识:VRID(0-255)
物理路由器:

  • master :主设备
  • backup :备用设备
  • priority:优先级

VIP:Virtual IP
VMAC:Virutal MAC (00-00-5e-00-01-VRID)
GraciousARP

阅读更多

网站跨域的五种解决方式

1、什么是跨越?

  • 一个网页向另一个不同域名/不同协议/不同端口的网页请求资源,这就是跨域。
  • 跨域原因产生:在当前域名请求网站中,默认不允许通过ajax请求发送其他域名。

网络请求示意图

2、为什么会产生跨域请求?

  • 因为浏览器使用了同源策略

3、什么是同源策略?

  • 同源策略是Netscape提出的一个著名的安全策略,现在所有支持JavaScript的浏览器都会使用这个策略。同源策略是浏览器最核心也最基本的安全功能,如果缺少同源策略,浏览器的正常功能可能受到影响。可以说web是构建在同源策略的基础之上的,浏览器只是针对同源策略的一种实现。
阅读更多

小程序的三级联动

项目中经常遇到要选择城市。用到三级联动的方式

  • 微信小程序的 picker 组件 mode=date 是三级联动的,但是无法自定义,这让我们心痛不已,值得我们欣慰的 picker-view 组件是可以自定义添加多个选项,但还是无法联动。既然这样那就自己写一个联动。
  • 做到如下图所示:
  • 分为动态获取地址
  • 引用静态文件获取地址

阅读更多

SpringBoot是怎么在实例化时候将bean加载进入容器中

之前写过的很多spring文章,都是基于应用方面的,这次的话,就带大家来一次对spring的源码追踪,看一看spring到底是怎么进行的初始化,如何创建的bean,相信很多刚刚接触spring的朋友,或者没什么时间的朋友都很想知道spring到底是如何工作的。

首先,按照博主一贯的作风,当然是使用最新的spring版本,这次就使用spring4.2.5…其次,也是为了方便,采用spring-boot-1.3.3进行追踪,和spring 4.2.5是相同的。

不用担心框架不同,大家如果是使用的xml方式进行配置的话,可以去你的ContextListener里面进行追踪,spring-boot只是对 spring所有框架进行了一个集成,如果实在进行不了前面几个步骤的话,可以从文章第6步的AbstractApplicationContext开始看起, 这里就是spring最最重要的部分。

阅读更多

带你看懂分布式事务

  • 转自Java Geek Tech
  • 4月初在面试一家互联网公司的过程中就被问到了分布式事务问题。我又一次在没有好好整理的问题上吃了亏,记录一下,还是长记性!!!
阅读更多

Swagger使用指南

Swagger使用指南

现代化的研发组织架构中,一个研发团队基本包括了产品组、后端组、前端组、APP端研发、测试组、UI组等,各个细分组织人员各司其职,共同完成产品的全周期工作。如何进行组织架构内的有效高效沟通就显得尤其重要。其中,如何构建一份合理高效的接口文档更显重要。

接口文档横贯各个端的研发人员,但是由于接口众多,细节不一,有时候理解起来并不是那么容易,引起‘内战’也在所难免, 并且维护也是一大难题。

类似RAP文档管理系统,将接口文档进行在线维护,方便了前端和APP端人员查看进行对接开发,但是还是存在以下几点问题:

  • 文档是接口提供方手动导入的,是静态文档,没有提供接口测试功能;
  • 维护的难度不小

Swagger的出现可以完美解决以上传统接口管理方式存在的痛点。本文介绍Spring Boot整合Swagger2的流程,连带填坑。

阅读更多