LINUX.ORG.RU

Сообщения drsm

 

RingBuffer для списка последних сообщений

что-то не могу найти среди всего разнообразия java контейнеров нужный для моего извращенного случая.

если вкратце то нужно что-то типа того, хотя достаточно и обычной очереди:

Collections.synchronizedMap(new LinkedHashMap<Integer, Object>()
{
    @Override
    protected boolean removeEldestEntry(Map.Entry<Integer, Object> eldest)
    {
       return this.size() > MAX_SIZE;   
    }
});

но

- записи будет очень много из разных потоков.

- чтения будет мало и читаться будет все целиком, те snapshot, тоже из разных потоков.

- скорость чтения не важна.

- порядок сообщений важен.

 ,

drsm
()

Суицидальная тема в Spring Boot

есть

public class CriticalSystemError extends Error {
задача, при выбросе данного исключения из любого места программы, завершить процесс.

не найду никак какую ручку крутить...

 ,

drsm
()

Optional недоФП

напал тупняк, как это сделать без временной переменной?

String keyId = Optional
    .ofNullable(jws.getKeyIdHeaderValue())
    .orElseThrow(() -> new TokenCorruptedException("no kid header"));

return Optional
    .ofNullable(store.get(keyId))
    .orElseThrow(() -> new TokenUnsignedException("unknown or expired kid: " + keyId));

 

drsm
()

dns странности на микротике

artem@two:~$ ssh user@one
ssh: Could not resolve hostname one: No address associated with hostname
artem@two:~$ ping one
ping: unknown host one
artem@two:~$ nslookup one
Server:         127.0.1.1
Address:        127.0.1.1#53

Non-authoritative answer:
Name:   one
Address: 10.11.12.1

artem@two:~$ ping one
PING one (10.11.12.1) 56(84) bytes of data.
64 bytes from one (10.11.12.1): icmp_seq=1 ttl=64 time=0.301 ms
64 bytes from one (10.11.12.1): icmp_seq=2 ttl=64 time=0.200 ms
64 bytes from one (10.11.12.1): icmp_seq=3 ttl=64 time=0.212 ms
^C
--- one ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2017ms
rtt min/avg/max/mdev = 0.200/0.237/0.301/0.048 ms
artem@two:~$ ssh user@one
user@one's password: 

на микротике прописан статический адрес для one (ip->dns->static). на локалхосте two NetworkManager, адрес и днс получаются через DHCP.

 , ,

drsm
()

Чем заменить database evolutions (play)?

Переписываю проект с play на spring.

интересует альтернатива этому. очень желательно stand-alone.

пока есть такой вариант http://sqitch.org/ .

 , ,

drsm
()

Spring 5 WebFlux blocking call best practice

Решил использовать в новом проекте WebFlux, тк Play не понравился, и со спрингом знаком уже давно.

имеем контроллер с задачей сходить в базу и вернуть ответ.

@RestController
@RequestMapping(path = "/test", produces = { APPLICATION_JSON_UTF8_VALUE })
public class UserService {
	private JdbcTemplate jdbcTemplate;
	@Autowired
	void setDataSource(DataSource dataSource) {
		jdbcTemplate = new JdbcTemplate(dataSource);
	}
	@GetMapping(path = "test")
	Mono<ResponseEntity<String>> test() {
		return Mono.just(ok(jdbcTemplate.queryForObject("select pg_sleep(0.1)", String.class)));
	}
	@GetMapping(path = "test1")
	Mono<ResponseEntity<String>> test1() {
		return Mono
			.defer(() -> Mono.just(ok(jdbcTemplate.queryForObject("select pg_sleep(0.1)", String.class))))
			.publishOn(Schedulers.elastic());
	}
	@GetMapping(path = "test2")
	Mono<ResponseEntity<String>> test2() {
		return Mono
			.fromCallable(() -> ok(jdbcTemplate.queryForObject("select pg_sleep(0.1)", String.class)))
			.publishOn(Schedulers.elastic());
	}
}

в различных мануалах предлагают блокирующий вызов оборачивать по методу «test1» или «test2».

проверил с помощью siege на локалхосте и получил странный результат.

siege -c 200 -b http://localhost:8080/test/test
Transaction rate:              38.32 trans/sec

siege -c 200 -b http://localhost:8080/test/test1
Transaction rate:              38.35 trans/sec

siege -c 200 -b http://localhost:8080/test/test2
Transaction rate:              98.02 trans/sec

не понятно почему метод «test1» так тормозит.

 ,

drsm
()

machinectl login autologin

это можно как-нибудь сделать, чтобы не вбивать каждый раз логин/пароль ?

 ,

drsm
()

АО «Казахтелеком» информирует

АО «Казахтелеком» информирует о внедрении национального сертификата безопасности с 1 января 2016 года

С 1 января 2016 года в соответствии с Законом Республики Казахстан «О связи» Комитет связи, информатизации и информации Министерства по инвестициям и развитию Республики Казахстан внедряет национальный сертификат безопасности для пользователей сети Интернет.

Согласно Закону операторы связи обязаны осуществлять пропуск трафика с использованием протоколов, поддерживающих шифрование, с применением сертификата безопасности, за исключением трафика, шифрованного средствами криптографической защиты информации на территории Республики Казахстан.

Национальный сертификат безопасности обеспечит защиту казахстанских пользователей при использовании протоколов шифрованного доступа к зарубежным ресурсам сети Интернет.

По словам Управляющего директора по инновациям АО «Казахтелеком» Нурлана Мейрманова, пользователям сети Интернет необходимо установить национальный сертификат безопасности, который будет доступен через Интернет-ресурсы АО «Казахтелеком». «Пользователю необходимо зайти на сайт http://www.telecom.kz и установить на своих устройствах выхода в сеть Интернет данный сертификат, следуя пошаговой инструкции по установке» - подчеркнул Н. Мейрманов.

АО «Казахтелеком» обращает особое внимание пользователей на то, что установка сертификата безопасности должна быть выполнена с каждого устройства абонента, с которого будет осуществляться выход в сеть Интернет (мобильные телефоны и планшеты на базе iOS/Android, персональные компьютеры и ноутбуки на базе Windows/MacOS).

Подробная инструкция по установке сертификата безопасности будет размещена в декабре т.г. на сайте http://www.telecom.kz.

http://telecom.kz/news/view/18729

это просто праздник какой-то...

 , ,

drsm
()

RSS подписка на новые темы